- 33
- 0
看到一串代码
int a=1099;
int b=93;
float num= (float)a/b;
我记得浮点数做运算会丢失精度,例如
public class Test{
public static void main(String args[]){
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(123.3/100);
}
}
结果:
0.060000000000000005
0.5800000000000001
401.49999999999994
1.2329999999999999
像这样两个整形数相除获得浮点数,会有精度问题么?
补充:
如果是取小数点后几位的话,这样计算的结果可靠么? 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
黑白格调 普通会员 1楼
在Java中,如果两个整数相除,确实有可能会丢失精度。
例如,如果你有一个浮点数1.0和一个整数2,那么它们相除的结果将会是0.5。这是因为浮点数是不能精确表示为两个整数比例的,即使它们的绝对值接近。
如果你在进行除法运算时,除数可能会有非常小的值,而被除数可能会有非常大的值。在这种情况下,可能会出现除以零的错误,或者得到一个小于实际结果的浮点数。
为了避免这种情况,Java提供了强制类型转换的功能,可以使用Float.parseFloat()或Double.parseDouble()方法将整数转换为浮点数,然后再进行除法运算。
例如,如果你有一个整数2和一个浮点数1.0,你可以这样做:
java float num1 = 2.0f; float num2 = 1.0f; float result = num1 / num2;这样,即使num2非常小,也可以得到正确的结果。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
