Angular 角形2号管,用于科学符号数字

Angular 角形2号管,用于科学符号数字,angular,angular-pipe,Angular,Angular Pipe,我使用数字管道(数字:'1.2-2')来舍入小数。它适用于标准格式数字,但对于科学格式数字(指数),结果以标准格式返回 例如,如果我将上面的数字管道应用于1.336274995924138e+306,我期望1.34e+306,但得到的是133627499241400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

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

例如,如果我将上面的数字管道应用于1.336274995924138e+306,我期望1.34e+306,但得到的是133627499241400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

同样的方法在AngularJS1.x中也适用


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

对于num=1.336274995924138e+306

num.toPrecision(3)
结果以3位有效数字表示,即。 1.34e+306

下面是一个Plunker示例,其中有一个自定义管道,当数字较大时,它将使用toPrecision,否则,它将使用您一直使用的DecimalPipe


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

谢谢。toPrecision适用于科学格式,但不适用于标准格式数字。在我的情况下,我需要的东西,可以与标准和科学的格式。因此,如果我的输入是标准格式,管道必须将其四舍五入到小数点后2位,结果必须是标准格式。如果输入是科学格式的,那么结果必须是科学格式的。