javascript - JS-toFixed 返回一个字符串,但我需要一个 6 位数字

标签 javascript decimal precision tofixed

我正在使用另一个我无法控制且看不到的代码库。我可以向它发送输入,它会将输出返回给我。这个代码库也没有指定它是用什么写的,但这没关系,因为我只需要传递它的数字,它就会把它的输出数字交还给我。我只知道预期的输入和输出是什么。

我必须使用的输入之一要求我提供一个精确到小数点后 6 位的输入。我的大多数数字将远高于小数点后 6 位,因此我可以对其进行四舍五入或 chop ,但如果四舍五入或随机恰好是 0.125 之类的数字或 0.5 ,我无法输入正确的数字。

例如,如果我有一个像 0.5 这样的数字,这是一个有效且合法的数字,但我输入它的函数不会接受它并且会出错,因为它不是精确到小数点后 6 位的数字,如 0.500000是。我也无法输入 "0.500000" 的字符串,因为它会出错,因为它正在寻找一个数字,而不是一个字符串。

无论如何,原生 JavaScript 中是否有一个数字保持特定的精度,即使它的末尾有额外的死零?

例子:

(1/2).toFixed(6) === "0.500000" // the toFixed() function returns a *String*, not a *Number*.

(1/2).toFixed(6) /1 === 0.5 // dividing by 1 coerces it to a Number, but drops the decimals back off the end.

Number( (1/2).toFixed(6) ) === 0.5 // Trying to convert it into a Number using the Number Constructor does the same as  the example above it.

*编辑:要清楚,我需要一个小数点后 6 位的数字,而不是字符串。

最佳答案

尝试这个:

parseFloat(val.toFixed(6))

关于javascript - JS-toFixed 返回一个字符串,但我需要一个 6 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45917980/

相关文章:

mysql - 如何在mysql数据库中存储比特币和其他货币

math - float 学有问题吗?

javascript - 如何在 AngularJS 中使用 event.preventDefault()?

Python余弦函数精度

javascript - onmousedown 调用鼠标捕获函数?

c# - 添加数百万个定点数

iOS 7.1 CommonCrypto 库提示 : Implicit conversion loses integer precision: 'NSUInteger' (unsigned long) to CC_LONG (unsigned int)

Java:使用 long 和 int 的精度错误

javascript - JavaScript 中网络图表的大型数据集

javascript - 如何在 Sails.js 0.11 中添加自定义 CSS 和 JS 文件?