Блок закруглить с использованием десятичной трубы в угловой 4
Используя угловой 4,
{{31.94 | number:'1.0-0'}}
Выход: 32
Любая идея, как заблокировать округление. Ожидая результат - 31
5 ответов
Вам нужно создать свою собственную трубу, так как DecimalPipe не предоставляет функции пола. Плюс вы можете добавить свою десятичную трубу в него.Ваша заказная труба:
@Pipe({name: 'floor'})
export class FloorPipe implements PipeTransform {
/**
*
* @param value
* @returns {number}
*/
transform(value: number): number {
return Math.floor(value);
}
}
Использовать в шаблоне как:
<span>{{ yournumber | floor | your_decimal_pipe }}</span>
your.component.ts
import { Component, Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'DecimalPipe'})
export class NumNotRoundPipe implements PipeTransform {
transform(value: number): number {
var num1 = Math.floor(value * 100) / 100;
return num1;
}
}
your.module.ts
import {NumNotRoundPipe} from './your.component'
@NgModule({
imports: [
],
declarations: [
NumNotRoundPipe
],
entryComponents: [
],
providers: [
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
your.component.html
<span>{{yourNumber | DecimalPipe:'1.2-2'}}</span>
Вам может не понадобиться дополнительная пользовательская труба. Выходные данные - это строка, и есть множество струнных каналов. Вы можете усечь, как это:
{{31.94 | slice:0:2}}
//Output : 31
Достигнет желаемого результата в этом конкретном случае.
{{1.94 | number:'2.2-2' | slice:0:2}}
//Output : 01
Вы все еще хотите использовать пользовательский канал, если не хотите заполнять 0.
Когда доступен только «круглый», вы можете смоделировать «пол», вычтя 0,5 из значения.
{{31.94 - 0.5 | number:'1.0-0'}}
Если ваше значение может быть ниже 0,5, чтобы не печатать «-1», вам нужно будет написать:
<ng-container *ngIf="myVal >= 0.5">{{ myVal - 0.5 | number:'1.0-0' }}></ng-container>
<ng-container *ngIf="myVal < 0.5">0</ng-container>
В вашем файле модуля:
import { CommonModule } from '@angular/common';
Добавьте его в массив импорта:
imports [
CommonModule
]
Затем используйте:
{{31.94 | number:'1.0-0'}}
// It will display 31