如何将数字转换为浮点数在javascript中为8点小数

时间:2019-03-15 22:03:47

标签: javascript node.js ecmascript-6 chai

如何将测试用例中的输入(整数或浮点数)转换为始终为8位小数的浮点数/字符串数?例如,如果我的输入为3,则我应将其转换为“ 3.00000000”,如果我的输入为53.678,则应将其转换为“ 53.67800000”。我已经用Google搜索并尝试了几种转换类型,例如解析,toPrecision(),但无法转换。非常感谢您的帮助。

expect(a).to.equal(b) // a and be should be of same number with types too
expect(a).to.equal(b)

1 个答案:

答案 0 :(得分:0)

在JavaScript中,Number
它的精度不能用小数位表示,它取决于数字的大小。例如,在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)。
为了安全起见,请使用 bignum 库,例如big.js