java - 双打四舍五入到最接近的整数的问题
问题描述
与许多其他帖子不同,我想找出为什么我的代码会自动四舍五入到最接近的整数?
在此处查看代码
double sixes = 200/3;
double threes = 100/3;
System.out.println("Sixes: " + sixes + "\nThrees: " + threes);
在此处查看输出:
六人组:66.0
三人组:33.0
这些都应该分别是66.66666666666
,33.3333333333
但我不确定为什么要四舍五入?
解决方案
问题是你是否在数字后添加一个小数点,如果你不添加它是双除以 int 而不是双除是双,这里的例子:
双除以 int :
double sixes = 200/3;
double threes = 100/3;
System.out.println("Sixes: " + sixes + "\nThrees: " + threes);
输出 :
Sixes: 66.0
Threes: 33.0
双除以双:
double sixes = 200/3.0;
double threes = 100/3.0;
System.out.println("Sixes: " + sixes + "\nThrees: " + threes);
输出 :
Sixes: 66.66666666666667
Threes: 33.333333333333336
推荐阅读
- javascript - 有条件地使用对象属性
- flutter - 如何使 ClipRRect 中的 Container 调整为子文本大小
- android - Cordova 相机插件 PhotoLibrary Android
- javascript - 无法在弹出框中包含选择字段
- database - 如何将 ER 图 1:1:N 三元关系转换为 Relational Schema
- deep-learning - 微调ssd mobilenet
- excel - 我可以根据不同单元格的值确定公式中文件路径的一部分吗?
- python - 如何从字符串中获取第一个 IP 地址
- common-lisp - LISP 如何创建存储函数参数的数据库
- asp.net - 在 Asp.net 中的 Datalist 中自动更新 DropDown 项