我有一个生成为有限小数的数字:
var x = k * Math.pow(10,p)
具有k和p整数。有没有简单的方法可以将其转换为精确的字符串表示形式?
如果我使用隐式字符串转换,则会得到难看的结果:
""+ 7*Math.pow(10,-1)
给予
"0.7000000000000001"
我尝试使用.toFixed和.toPrecision,但是很难找到根据k和p使用的正确精度。有没有办法获取旧的C语言“%g”格式?也许我应该求助于外部图书馆?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用选项floor
accuracy
函数
function fixRound(number, accuracy) {
return ""+Math.floor(number * (accuracy || 1)) / accuracy || 1;
}
let num = 7 * Math.pow(10, -1);
console.log(fixRound(num, 1000))