基本练习app输出。 Java的

时间:2013-10-10 14:48:15

标签: java optimization floating-point

尝试执行此操作:practice app

当我自己测试它似乎工作得很好但是当我上传我的代码时,我被标记为不正确(程序运行但输出不正确 - 没有进一步的信息)。

所有这一切都是获得两个输入,使用和bal并检查是否with 5%=0 && bal>=with+0.5。 如果两个条件都为真,则返回bal-(with+0.5)

还有一种更有效(更快的代码执行)方式吗?

import java.util.Scanner;

class ATM {
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        final float with=in.nextFloat();
        final float bal=(float) ((in.nextFloat())-(with+0.5));
        if (bal>=0 && with%5==0){
            System.out.print(bal);
        }
    }
}

2 个答案:

答案 0 :(得分:3)

输出不正确,精度错误。明确指出需要两个数字,并且您的输出与示例中的预期不同:

输入:

30 120.00

预期产出:

89.50

您的输出

89.5

编辑:它也可能未通过第二次测试,因为如果提款不是5的倍数,则不输出任何内容。预计会在没有任何提款的情况下输出余额。

答案 1 :(得分:1)

我建议自动编程器在输出结束时期待一个新行,即println() vs print()

System.out.println(bal);

但正如@Steinar上面指出的那样,它应该是这样的:

System.out.println(String.format("%.02f", bal));