angular - Angular 9 formatCurrency 存在严重的舍入问题
问题描述
我有一个 Angular 9 应用程序,并且我编写了自己的货币管道。它看起来像这样:
import { Pipe, PipeTransform } from '@angular/core';
import { formatCurrency, getCurrencySymbol } from '@angular/common';
@Pipe({
name: 'dutchcurrency',
})
export class DutchCurrencyPipe implements PipeTransform {
transform(
value: number,
currencyCode: string = 'EUR',
display:
| 'code'
| 'symbol'
| 'symbol-narrow'
| string
| boolean = 'symbol',
digitsInfo: string = '3.2-2',
locale: string = 'nl',
): string | null {
return formatCurrency(
value,
locale,
getCurrencySymbol(currencyCode, 'wide'),
currencyCode,
null,
);
}
}
我在 formatCurrency 中发现了一个非常严重的缺陷。我有一个数字,即 1.425。formatCurrency 将其格式化为 1.42,这是非常错误的。它应该四舍五入到 1.43!formatCurrency 中似乎存在一个非常严重的缺陷,其中数字应该向上取整而不是向下取整。这是一个已知错误,我该如何解决?
解决方案
我找到了答案。由于某种原因,发送到管道的值是字符串而不是数字,所以我修复了它。其次,我用 Math.round((value + Number.EPSILON) * 100) / 100 更改了 formatCurrency 的第一个参数。
那为我修好了。
推荐阅读
- tinymce - 如何为列表指定默认 CSS 类
- 在 TinyMCE 中?
- ansible - 没有将正则表达式与 ansible 匹配
- mysql - Spring-Boot mysql 输出没有 \r\n 标志
- arrays - 田口设计的关卡
- javascript - 在将编辑后的 csv 作为文件上传到另一个 API 之前,如何使用 JMETER 覆盖 CSV 中的列?
- javascript - 打字稿字符串或自定义类型
- python - 如何告诉 pyinstaller 使用带有 --onefile 选项的 python-certifi-win32
- java - JsonArray 在 Java 的 for 循环中只取最后一个 JsonObject
- r - 从R中的网页中提取json链接
- tcl - tcl 脚本的类似命令“echo off”