Aen*_*Tan 2 javascript ruby math operators
我在JS中有一个使用按位NOT运算符的公式.
~~(n/m + 0.5) * m;
Run Code Online (Sandbox Code Playgroud)
如何在ruby中编写相同的表达式?ruby中没有按位NOT运算符.
这不会有帮助吗?http://www.techotopia.com/index.php/Ruby_Operators#Ruby_Bitwise_Operators
〜按位NOT(补语)
我相信Ruby中的相同表达式可能是(n/m + 0.5).to_i * m,或者Integer(n/m + 0.5) * m.
看起来像加倍的按位补码实际上用于截断计算的小数部分,以便计算最接近的n,使得n是m的倍数.(在另一种语言中,我会说"转换为整数",但Javascript具有统一的算术类型.)
更新: MladenJablanović建议演员,是的,如果m和n都是Fixnum,那就需要了.在Ruby中,1/3是0但在JS中它是0.333 ...... 这是一个精致的建议:
(n.to_f / m).round * m
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1394 次 |
| 最近记录: |