我正在使用数字管(数字:'1.2-2')来四舍五入小数。它适用于标准格式数字,但对于科学格式数字(指数),结果以标准格式返回。
例如,如果我将上述数字管道应用于 1.336274995924138e+306,我期望 1.34e+306 但我得到的是 13362749959241400000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000。在 Angular JS 1.x 中同样可以正常工作。
请告诉我如何以与原始数字相同的符号返回结果。
最佳答案
对于数字 = 1.336274995924138e+306
num.toPrecision(3)
结果以科学记数法表示,有 3 位有效数字...即 1.34e+306
这是一个带有自定义管道的 Plunker 示例,当数字很大时,它将使用 toPrecision,否则,它将使用您一直在使用的 DecimalPipe。 Custom Pipe Example
如果您想将其合并到代码库中,请查看主应用程序模块中如何引用它。
关于Angular 2 - 用于科学记数法数字的数字管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43859972/