int i = 0; if(d>0) i = (int)(d + 0.5); if(d<0) i = (int)(d - 0.5);首先得知道double转int时,会丢掉小数部分,只留整数部分,符号无影响,保留。
也就是说,从2.1到2.9转int 都是2,从-2.1到-2.9转int都是-2.
那么:
如: d = 2.1 ,d+0.5=2.6, (int)转换后为2,符合四舍五入。
d = 2.8 , d+0.5=3.3, (int)转换后为3,符合四舍五入。
d = - 2.1, d-0.5=-2.6, (int)转换后为-2,符合四舍五入。
d = - 2.8, d-0.5=-3.3, (int)转换后为-3,符合四舍五入。