【发布时间】:2012-01-13 09:04:12
【问题描述】:
在 C# 中,以下代码返回 2:
double d = 2.9;
int i = (int)d;
Debug.WriteLine(i);
然而,在 Javascript 中,我知道将“double”转换为“int”的唯一方法是使用 Math.round/floor/toFixed 等。有没有一种方法可以转换为 int Javascript没有四舍五入?我知道 Number() 的性能影响,所以我宁愿尽可能避免将其转换为字符串。
【问题讨论】:
-
为什么排除
Math.floor? -
建议您使用“parseInt()”的答案可能都首先在内部转换为字符串,因为这是“parseInt()”所期望的。真的,“Math.floor()”或“~~num”(双“非”操作)会将您的双精度值截断为整数。
-
他可能排除了
Math.floor,因为它对负数的行为不同。比较Math.floor(-2.5)和-2.5|0。 -
丢弃小数部分总是四舍五入,根据定义。你可能想要:
rounding towards zero.
标签: javascript casting floating-point int