如何在JavaScript中使用8点小数位置将数字转换为Float



我如何将一个数字,即我的测试用例的输入转换为整数或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。

最新更新