定义一个float数32.12,减去整数部分后,余下的为什么不是0.12,而是一串小数?

float num=32.12f;   
System.out.println(num-(int)num);
代码如上所示,定义一个float数,减去整数部分后,余下的为什么不是0.12,而是一串小数0.11999893?

因为32.12后面的12其实就是11999893等等等。。。
只是默认近似到了12,即使你手动赋值32.12 ; 这个是float精度的问题
如果你想要一个非常精确的数字。建议你是用 BigDecimal 这个类(java 语言)
希望对你有帮助
2017年03月17日11:32:49

float类型与int类型不同,你都未float类型就行了

浮点数精度丢失的问题,
http://blog.csdn.net/zq602316498/article/details/41148063

http://www.jb51.net/article/57217.htm

这是正常的,float计算出现精度丢失,得到的是一个近似值

浮点数存在两个误差,一个是本身的精度误差,一个是它和10进制转换的误差。要精确可以用 decimal,它的原理是内部采用整数运算,只是把小数点平移形成小数,所以没有误差。