【问题标题】:Angular 2 - Number pipe for scientific notation numbersAngular 2 - 科学记数法数字的数字管道
【发布时间】:2017-05-09 02:15:29
【问题描述】:

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

例如,如果我在上述号码管适用于1.336274995924138e + 306我期望1.34E + 306,但我所得到的是1336274995924140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000。 P>

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

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

【问题讨论】:

    标签: angular angular-pipe


    【解决方案1】:

    对于 num = 1.336274995924138e+306

    num.toPrecision(3)
    

    科学记数法的结果为 3 位有效数字...即 1.34e+306

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

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

    【讨论】:

    • 谢谢。 toPrecision 适用于科学格式,但不适用于标准格式数字。就我而言,我需要一些可以同时使用标准格式和科学格式的东西。因此,如果我的输入采用标准格式,则管道必须将其四舍五入到小数点后 2 位,并且结果必须采用标准格式。如果输入是科学格式,那么结果必须是科学格式。
    猜你喜欢
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2017-08-04
    • 2017-04-01
    • 2021-02-04
    • 1970-01-01
    相关资源
    最近更新 更多