17

(int)myDouble什么不同(int)Math.Truncate(myDouble)吗?

有什么理由我应该更喜欢其中一个吗?

4

2 回答 2

12

Math.Truncate适用于当您需要将结果保留为没有小数部分的双精度数时。如果您想将其转换为 int,只需直接使用强制转换即可。

编辑:作为参考,这里是来自“<a href="http://msdn.microsoft.com/en-us/library/yht2cx7b.aspx" rel="noreferrer">Explicit Numeric Conversions Table”的相关文档:

当您从 double 或 float 值转换为整数类型时,该值将被截断。

于 2012-06-17T18:08:12.000 回答
6

正如Ignacio Vazquez-Abrams 所指出的那样,当 myDouble 太大时,它(int)myDouble会以同样的方式失败。(int)Math.Truncate(myDouble)

因此输出没有差异,但(int)myDouble工作速度更快。

于 2012-06-17T18:08:12.893 回答