【发布时间】:2019-12-20 11:48:43
【问题描述】:
我正在尝试解决一个涉及循环数字的特定 JavaScript 练习,为此我需要处理循环数字到大量小数位。
目前我正在使用:
function divide(numerator, denominator){
var num = (numerator/parseFloat(denominator);
}
// 7/11 = 0.6363636363636364
// 5/3 = 1.6666666666666667
// 3/8 = 0.375
如您所见,包含重复数字的运算结果将返回最后一位四舍五入的数字。简单地将每个数字的最后一位转换为数组和 pop() 是很诱人的,但是当我们遇到诸如 3/8 =0.375 之类的非重复数字时,这会导致问题。
如何将两个数字相除并得到 5/3 = 1.666666666666666 之类的结果? (基本上最后一位是向下取整,从不向上取整)
感谢您的帮助。
【问题讨论】:
-
您是否查看过任何 Big-Number 选项? developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 中有一个新选项,还有一些“外部”库
-
我已将 BigInt 视为一个选项,但找不到可以让我处理小数的解决方案。可能有一种使用 BigInt 的方法,但如果有,我目前不知道该方法。
-
对不起,我忘了那只是整数,但如果你搜索“js bigint 的替代品”,那么你应该会找到很多库,我发现的第一个库是 bellard.org/quickjs/jsbignum.html,它肯定有 bigFloat 功能.
标签: javascript numbers decimal