Joh*_*han 251
double d = 1.234;
int i = Convert.ToInt32(d);
Run Code Online (Sandbox Code Playgroud)
处理四舍五入如下:
四舍五入到最近的32位有符号整数.如果值在两个整数之间,则返回偶数; 也就是说,4.5转换为4,5.5转换为6.
nic*_*ckf 78
使用Math.round(),可能与...结合使用MidpointRounding.AwayFromZero
例如:
Math.Round(1.2) ==> 1
Math.Round(1.5) ==> 2
Math.Round(2.5) ==> 2
Math.Round(2.5, MidpointRounding.AwayFromZero) ==> 3
Run Code Online (Sandbox Code Playgroud)
小智 36
你也可以使用功能:
//Works with negative numbers now
static int MyRound(double d) {
if (d < 0) {
return (int)(d - 0.5);
}
return (int)(d + 0.5);
}
Run Code Online (Sandbox Code Playgroud)
根据架构,它的速度要快几倍.
我知道这个问题很旧,但是在寻找类似问题的答案时遇到了它。我想我会分享给我的非常有用的提示。
转换为int时,只需.5在向下转换前添加您的值即可。由于向下转换int始终下降到较小的数字(例如(int)1.7 == 1),因此,如果您的数字大于或等于该数字,则.5添加.5将其带入下一个数字,而向下转换为的数字int应返回正确的值。(例如(int)(1.8 + .5) == 2)
| 归档时间: |
|
| 查看次数: |
157309 次 |
| 最近记录: |