计算浮点数4.78的整数部分和小数部分 float f = 4.78f;System.out.println((int)f);System.out.println(f - (int)f);结果输出40.7800002不应该是40.78吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 float和double型由于二进制计数的根本原因,计算结果会出现误差,所以一般计算的时候使用System.out.println(((float)Math.round( (f-(int)f) *100)/100)); float、double类型自身的精度问题! 浮点运算都会出现你这样的问题的。不过好在Java提供了一种机制可以避免出现这种情况,用BegDecimal BigDecimal f = new BigDecimal(7.48); BigDecimal i = new BigDecimal(7); f = f.subtract(i); System.out.println(f.floatValue()); roundpublic static long round(double a)返回最接近参数的 long。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型。换句话说,结果等于以下表达式的值: (long)Math.floor(a + 0.5d)特殊情况如下: 如果参数为 NaN,那么结果为 0。 如果结果为负无穷大或任何小于等于 Long.MIN_VALUE 的值,那么结果等于 Long.MIN_VALUE 的值。 如果参数为正无穷大或任何大于等于 Long.MAX_VALUE 的值,那么结果等于 Long.MAX_VALUE 的值。参数:a - 舍入为 long 的浮点值。 返回:舍入为最接近的 long 值的参数值。 浮点数精度问题,float和double都不精确,用BigDecimal,一般的涉及到精确地数字比如银行中存款什么的都不能用float等 给大家做一道题目 关JAVA 做的SP网关直连程序问题 关于final对象回收的疑问 [急]java.net.SocketException: Connection reset by peer: socket write error 新手提个小问题 请教 使用POI导出到EXCEL时,导出的数据量大时,EXCEL文件出错 反射的具体步骤是什么啊? 急急急!!!关于Applet生命周期问题 能不能做到这一点,从客户机激活服务器上的某程序 关于参数传递的问题,求解决!! 建立一个gui程序,实现下列至少5个组件,大家有什么好的想法吗?
System.out.println(((float)Math.round( (f-(int)f) *100)/100));
不过好在Java提供了一种机制可以避免出现这种情况,用BegDecimal
BigDecimal f = new BigDecimal(7.48);
BigDecimal i = new BigDecimal(7);
f = f.subtract(i);
System.out.println(f.floatValue());
public static long round(double a)返回最接近参数的 long。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型。换句话说,结果等于以下表达式的值: (long)Math.floor(a + 0.5d)特殊情况如下: 如果参数为 NaN,那么结果为 0。
如果结果为负无穷大或任何小于等于 Long.MIN_VALUE 的值,那么结果等于 Long.MIN_VALUE 的值。
如果参数为正无穷大或任何大于等于 Long.MAX_VALUE 的值,那么结果等于 Long.MAX_VALUE 的值。参数:
a - 舍入为 long 的浮点值。
返回:
舍入为最接近的 long 值的参数值。