有(int)myDouble
什么不同(int)Math.Truncate(myDouble)
吗?
有什么理由我应该更喜欢其中一个吗?
Math.Truncate
适用于当您需要将结果保留为没有小数部分的双精度数时。如果您想将其转换为 int,只需直接使用强制转换即可。
编辑:作为参考,这里是来自“<a href="http://msdn.microsoft.com/en-us/library/yht2cx7b.aspx" rel="noreferrer">Explicit Numeric Conversions Table”的相关文档:
当您从 double 或 float 值转换为整数类型时,该值将被截断。
正如Ignacio Vazquez-Abrams 所指出的那样,当 myDouble 太大时,它(int)myDouble
会以同样的方式失败。(int)Math.Truncate(myDouble)
因此输出没有差异,但(int)myDouble
工作速度更快。