使我的变量显示正确的小数位

时间:2014-03-04 00:33:52

标签: java average

我正在做一个简单的家庭作业,并且我的计算有问题。 我的计算器的答案是4.83,但我的编译器说4.00。怎么能纠正这个? 这是我困难的部分。

double test = 29/6;
 System.out.printf("%.2f",test);
 System.out.println(test);

3 个答案:

答案 0 :(得分:3)

如果您划分两个integers,则结果始终为integer

您必须将一个号码从int转换为double

 double test = (double)29/6;
 System.out.printf("%.2f",test);
 System.out.println(test);

请注意,如果您只是编号,则会将其视为int

重要的是,代码打印4.00

 double test = (double)(29/6);
 System.out.printf("%.2f",test);
 System.out.println(test);

因为首先它除了两个整数,因此结果也是整数,然后它被转换成加倍。

使用(double)29/6((double)29)/6相同,因为投射具有更高的优先级。

答案 1 :(得分:1)

这是因为除法的两个操作数都是int,因此整个结果被截断为int类型。制作像这样的操作数double,一切正常。

double test = 29.0/6.0;

答案 2 :(得分:0)

它正在进行整数除法,它会截断小数点右边的所有内容,因此你得到4。

尝试以下方法:

double test = 29.0/6;             
    System.out.printf("%.2f",test);
    System.out.println(test);

输出:

4.83
4.833333333333333