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

mpe*_*pen 13 .net c# math

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

有什么理由我更喜欢一个而不是另一个?

Dou*_*las 9

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

编辑:供参考,以下是" 显式数字转换表 "中的相关文档:

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


dan*_*uch 5

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

所以输出没有区别,但(int)myDouble工作速度更快.

  • +1:这个答案提出了一个相关的观点.除非您需要从截断的double中删除`(int)`强制转换,否则您最终会处于相同的情况. (2认同)