c,
(int)(x*100+0.5)中x*100就把小数点后两位移到整数部分了,然后强制转换为int,再除以float,所以结果为小数点后两位,其他也可以,不过不是保留两位小数。
你假设x=123.456
x*100+0.5=12345.6+0.5=12346.1//这里加0.5是为了4舌5入
然后强制转化成int为12346
再除以100
结果为123.46
这样就做到了保留到小数点后两位,并将第3位四舍五入
这段文字再好理解不过了:
1,实型赋予整型
因为整型变量只能存放整数,不能保留小数,所以当把一个带有小数部分的数赋予整型变量,系统不得不把原来那个数的小数部分去掉,即舍去小数部分。
例如:
int
n=1.6;
printf("%d",n);
结果是1
2,整型赋予实型
反之把一个整数赋予一个实型变量,当然数值是不变了,无非就是在小数位置设置若干个0.
例如:
float
i=24;
printf("%f",i);
结果是24.000000