【发布时间】:2015-05-30 16:52:09
【问题描述】:
如果我没记错的话,当你使用
(整数)
这与转换为 Int32 相同
Convert.ToInt32(值)
我正在使用以下代码运行一个方法:
public int CurrentAge()
{
// return Convert.ToInt32((DateTime.Now - BirthDay).TotalDays)/365;
return (int)((DateTime.Now - BirthDay).TotalDays)/365;
}
使用这个日期:
DateTime.ParseExact("13-07-1985", "dd-MM-yyyy",null)
取消注释第一行,输出为30,但使用 (int) 进行转换会导致29。为什么会出现这种行为?
例如阅读这篇文章:
difference between Convert.ToInt32 and (int)
我知道应该是一样的。
【问题讨论】:
-
您是否在不同的时间进行了检查?
-
我猜默认的舍入逻辑是庄家舍入。一楼一牢。
-
@SérgioS.Filho 默认的舍入逻辑是什么?
-
铸造但我不确定@Jodrell
-
@SérgioS.Filho 用于铸造(例如
(int)0.5)它的刚刚地板,任何小数部分都被丢弃。