我如何将一个数字,即我的测试用例的输入转换为整数或float的输入,将始终带有8个小数位置的浮子/字符串数字?例如,如果我的输入为3,则我应该将其转换为" 3.00000000",如果我的输入为53.678,则我应该转换为'53 .67800000'。我已经用谷歌搜索并尝试了几种转换类型,例如解析,topRecision(),但无法转换。非常感谢任何帮助。
expect(a).to.equal(b) // a and be should be of same number with types too
expect(a).to.equal(b)
在JavaScript中,Number
is double-Ecision float。
它的精度不能用小数点的小数表示,它取决于数字的大小。例如,在Number.MAX_SAFE_INTEGER
上方,精度为"小于0小数点":
const large = 9007199254740992;
const larger = large + 1;
console.log(large === larger);
要将Number
转换为具有固定数量小数位置的String
,请使用.toFixed()
,如@epascarello所建议:
const input = 3;
const str = input.toFixed(8);
console.log(str);
对于进行财务计算,有人说您绝不应该使用IEEE 754浮子(例如JavaScript的Number
s),尽管金融上许多最大的公司都这样做。
要安全起见,请使用 bignum 库,例如big.js。