Angular 2 - 科学计数法数字的数字管道

Angular 2 - Number pipe for scientific notation numbers

我正在使用数字管道 (number:'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.

中同样有效

请告知我怎样才能得到与原始数字相同符号的结果。

对于 num = 1.336274995924138e+306

num.toPrecision(3)

结果采用科学记数法,具有 3 位有效数字...即 1.34e+306

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

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