首页 > 解决方案 > 双打四舍五入到最接近的整数的问题

问题描述

与许多其他帖子不同,我想找出为什么我的代码会自动四舍五入到最接近的整数?

在此处查看代码

    double sixes = 200/3;
    double threes = 100/3;

    System.out.println("Sixes: " + sixes + "\nThrees: " + threes);

在此处查看输出:

六人组:66.0

三人组:33.0

这些都应该分别是66.6666666666633.3333333333但我不确定为什么要四舍五入?

标签: javamathroundingdivision

解决方案


问题是你是否在数字后添加一个小数点,如果你不添加它是双除以 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

推荐阅读