5

我正在处理 JavaScript 中的一个函数。我取两个变量 x 和 y。

我需要划分两个变量并在屏幕上显示结果:

x=9; y=110;
x/y;

然后我得到的结果是:

0.08181818181818181

BigDecimal.js我需要使用我在另一篇文章中找到的东西来做到这一点。

我希望结果显示为:

0.081

4

5 回答 5

20

试试这个,它在昏迷后四舍五入到 3 个数字:

(x/y).toFixed(3);

现在你的结果将是一个字符串。如果您需要它浮动,请执行以下操作:

parseFloat((x/y).toFixed(3));
于 2013-11-14T14:50:27.333 回答
4

你可以这样做

Math.round(num * 1000) / 1000

这将正确地舍入它。如果您只想截断而不是实际舍入,则可以使用floor()而不是round()

于 2013-11-14T14:48:33.790 回答
4

使用它来将 0.818181... 舍入到 0.81:

x = 9/110;
Math.floor(x * 1000) / 1000;
于 2013-11-14T14:50:35.933 回答
2

尝试这个

var num = x/y;
parseFloat((Math.round(num * 100) / 100).toPrecision(3))
于 2015-06-09T18:43:49.177 回答
0

如果我使用简单的表达式,结果可能出乎意料:

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
于 2019-07-16T20:59:46.697 回答