首页 > 解决方案 > 将javascript中的十进制数字表示为C中的“%g”格式

问题描述

我有一个生成为有限小数的数字:

var x = k * Math.pow(10,p)

有 k 和 p 个整数。有没有一种简单的方法可以将其转换为精确的字符串表示?

如果我使用隐式字符串转换,我会得到丑陋的结果:

""+ 7*Math.pow(10,-1)

"0.7000000000000001"

我尝试使用 .toFixed 和 .toPrecision 但很难根据 k 和 p 找到要使用的正确精度。有没有办法获得 C 语言的旧“%g”格式?也许我应该求助于外部图书馆?

标签: javascriptstringfloating-point

解决方案


可以math.formatmath.js库中使用:

math.format(7 * Math.pow(10, -1), {precision: 14});

"0.7"

推荐阅读