有没有什么原因更倾向于使用Math.Floor而不是强制转换为整型?
double num;
double floor = Math.Floor(num);
或
double num;
long floor = (long)num;
发布于 2012-03-21 18:49:51
负值的情况有所不同:
double num = -1.3;
double floor = Math.Floor(num); // = -2
long cast = (long)num; // = -1
发布于 2012-03-21 18:48:38
Math.Floor
从根本上不同于截断操作,因为它以不同的方式处理负数。Math.Floor(-1.5) == -2.0
,而(int)-1.5 == -1
.
发布于 2012-03-21 18:51:57
除了其他答案之外,不要忘记,在Floor
成功的地方,强制转换可能会失败:
decimal d = decimal.MaxValue;
decimal f = Math.Floor(d); // succeeds
long l = (long)d; // fails
https://stackoverflow.com/questions/9802978
复制相似问题