0

我正在查看这行代码,但我无法理解它。这个特定的代码是 javascript,但我最终想制作一个 java android 应用程序。

$("#TxtHalfDot").val(Math.round((60000/bpm)*3*1000)/1000); 

         //bpm being a user entered value

我了解数学的过程,并且已经用计算器完成了很多次。但是,我无法理解 *1000 后跟 /1000。

我的问题

这是“math.round”函数的奇怪行为,还是根本不需要。看过很多,但是看的时候觉得可以省略,但我不是电脑...

(60000/bpm) * 3给出相同的结果((60000/bpm) *3*1000)/1000

4

3 回答 3

9

如果你仔细看,你会发现整个项在四舍五入除以 1000 。

所以它不仅仅是x * 1000 / 1000

于 2013-09-18T10:33:29.037 回答
6

Math.round(a*1000)/1000结果a以 3 位小数四舍五入。

例如:Math.round(1234.123456 * 1000)/1000 = 1234.123

它的工作原理是这样的:假设数字ax小数(在我们的示例中为 6)。您将数字乘以 10 的幂n(在我们的示例 3 中),有效地将小数点n数字向右移动。然后你把数字四舍五入(去掉所有小数)。然后除以 10 的幂n,将小数点向后移动。

于 2013-09-18T10:33:43.240 回答
1

它与括号有关。

Math.round((60000/bpm)*3*1000)/1000

全文如下。。

将 60000 除以 bpm 然后乘以 3000 然后执行 Math.round 然后除以 1000

在将其除以 1000 之前,您正在舍入一个可能的浮点数

于 2013-09-18T10:38:22.660 回答