C++中取整的问题。
定义一个类型为short的变量a,
对a进行复制,不如赋值为3560。
对a进行取整操作,代码如下:
a=a/100*100;
最后的结果是3500.
如果代码换为:
a=a/1000*1000;
最后的结果变为3000.
这是什么样的机理?
[解决办法]
整数除整数,结果向下取整
3560/100 = 35
3560/1000 = 3
[解决办法]
计算机可不会约分抵消。他只知道一个一个步骤来计算。
[解决办法]
short 型本身没小数部分,short和short型的数据操作,得到的结果肯定是整数型的,而小数部分直接去掉了,所以
3560/100 = 35
3560/1000 = 3