math.round * 1000/1000是否有理由没有意义

时间:2013-09-18 10:30:12

标签: java javascript android math rounding

我正在查看这行代码,我无法理解它。这个特殊的代码是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

3 个答案:

答案 0 :(得分:9)

如果你仔细观察,你会发现整个术语在四舍五入后除以1000

所以它不只是x * 1000 / 1000

答案 1 :(得分:6)

Math.round(a*1000)/1000会将数字a舍入为3位小数。

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

这是如何工作的是这样的: 假设数字a具有x小数(在我们的示例6中)。您将数字乘以10乘以n(在我们的示例3中)的幂,有效地将小数点n数字向右移动。然后你绕数字(切掉所有小数)。然后将10除以n的幂,将小数点移回。

答案 2 :(得分:1)

它与括号有关。

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

完整地读取..

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

在将可能的浮点数除以1000

之前,你正在四舍五入