(int)myDouble是否与(int)Math.Truncate(myDouble)不同?

时间:2012-06-17 17:58:48

标签: c# .net math

(int)myDouble是否与(int)Math.Truncate(myDouble)不同?

我有什么理由比较喜欢一个吗?

2 个答案:

答案 0 :(得分:9)

Math.Truncate适用于需要将结果保持为双倍而没有小数部分的情况。如果你想将它修改为int,只需直接使用强制转换。

修改:供参考,以下是“Explicit Numeric Conversions Table”的相关文档:

  

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

答案 1 :(得分:5)

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

因此输出没有区别,但(int)myDouble的工作速度更快。