要将双精度转换为精度,并将其舍入为最近的整数(典型的(int ) );1.8 )与(不同的(int ) );1.2 ),只需向上添加0.5双精度,即可
例如,如果我们
双精度a=1.2;
双精度b=1.8;
然后,以下x和y类型转换表达式返回四舍五入后的值(x=1和y=1) :
intx=(int ) ) a; //thisequals(int ) ) 1.2 )-- 1
inty=(int ) ) b; //thisequals(int ) ) 1.8 )-- 1
但是,将每个值加0.5可能会导致(和)四舍五入到最近的整数。 x=1y=2
intx=(int ) ) a 0.5; //thisequals(int ) ) 1.8 )-- 1
inty=(int ) ) b 0.5; //thisequals(int ) ) 2.3 )-- 2
该方法还可以将要控制的阈值类型转换为双精度四舍五入后(int )的小注释。
(int ) ) a 0.8;
进行类型转换。 (int ) a 1仅在十进制值为0.2以上时进行四舍五入。 也就是说,double可以在类型转换之前加上0.8,以便在类型转换期间将10.15和10.03舍入为10 (整数),但将10.23和10.7舍入为11。