Math.Floor VS在C#中如何转换为整型?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (65)

是否有任何理由,人们宁愿使用Math.Floor与铸造成一个整体类型?

double num;
double floor = Math.Floor(num);

double num;
long floor = (long)num;
提问于
用户回答回答于

在将类型转换为整型和使用Math.Floor之间有一些不同:

  1. 当转换为一个整体类型时,你最终会得到一个完整的类型(很明显)。所以,如果你想把这个数字保持为双倍,使用Floor就更容易了。
  2. 作为1的结果,如果给定的数字太大而不能用给定的整数类型表示(双可以表示比长大得多的数字),那么cast就不能正常工作。
  3. 地板向负无穷远的方向旋转。向零投掷。
用户回答回答于
double num = -1.3;
double floor = Math.Floor(num); // = -2
long cast = (long)num; // = -1

扫码关注云+社区

领取腾讯云代金券