1

我正在使用数字管道(数字:'1.2-2')来四舍五入小数。它适用于标准格式数字,但对于科学格式数字(指数),结果以标准格式返回。

For example if I apply the above number pipe to 1.336274995924138e+306 I expect 1.34e+306 but what I get is 1336274995924140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.

在 Angular JS 1.x 中也可以正常工作。

请告知我如何以与原始数字相同的符号取回结果。

4

1 回答 1

2

对于 num = 1.336274995924138e+306

num.toPrecision(3)

结果以科学记数法计算,有 3 个有效数字...即 1.34e+306

这是一个带有自定义管道的 Plunker 示例,当数字很大时将使用toPrecision,否则,它将使用您一直在使用的DecimalPipe 。自定义管道示例

如果您想将其合并到您的代码库中,请查看它在主应用程序模块中的引用方式。

于 2017-05-09T03:48:15.797 回答