我正在处理 JavaScript 中的一个函数。我取两个变量 x 和 y。
我需要划分两个变量并在屏幕上显示结果:
x=9; y=110;
x/y;
然后我得到的结果是:
0.08181818181818181
BigDecimal.js
我需要使用我在另一篇文章中找到的东西来做到这一点。
我希望结果显示为:
0.081
我正在处理 JavaScript 中的一个函数。我取两个变量 x 和 y。
我需要划分两个变量并在屏幕上显示结果:
x=9; y=110;
x/y;
然后我得到的结果是:
0.08181818181818181
BigDecimal.js
我需要使用我在另一篇文章中找到的东西来做到这一点。
我希望结果显示为:
0.081
试试这个,它在昏迷后四舍五入到 3 个数字:
(x/y).toFixed(3);
现在你的结果将是一个字符串。如果您需要它浮动,请执行以下操作:
parseFloat((x/y).toFixed(3));
你可以这样做
Math.round(num * 1000) / 1000
这将正确地舍入它。如果您只想截断而不是实际舍入,则可以使用floor()
而不是round()
使用它来将 0.818181... 舍入到 0.81:
x = 9/110;
Math.floor(x * 1000) / 1000;
尝试这个
var num = x/y;
parseFloat((Math.round(num * 100) / 100).toPrecision(3))
如果我使用简单的表达式,结果可能出乎意料:
const fraction = (value) => {
return value - Math.floor(value);
}
fraction(1 / 3);
=> 0.333333333333 // is Right
fraction(22 / 3);
=> 0.33333333333333304 // is Unexpected
所以,我的稳健表达是:
const fraction = (value) => {
return parseFloat(value.toString().replace(/^\d+$/, '0').replace(/^.+?(?=\.)/, ''))
}
fraction(22 / 3);
=> 0.333333333333333
fraction(1111)
=> 0
fraction(.122211)
=> 0.122211
fraction(11111.122211)
=> 0.122211
fraction(11111.12)
=> 0.12
fraction(11111.11112)
=> 0.11112