(在这里完成新手)。 我有一个额外的表单,简单的练习来完成。其中一个练习说写一个程序,用户可以输入随机金额,该程序告诉用户需要多少欧元,50美分,20美分,10美分,5美分,2美分和1美分来弥补输入的金额。 我尝试使用模数来获得所需的分数,
我的问题是如何让我的程序计算所需的CENTS数量? 每当我使用除法运算符来获得剩余金额所需的50美分(例如0.60)时,它会使得我的2倍作为输出。
Scanner keyboard = new Scanner(System.in);
System.out.print("Input money recieved: ");
double recieve = keyboard.nextDouble();
double cents = recieve * 100;
int centsTotal = (int)cents;
System.out.print("Cents in total " + centsTotal);
int notes = centsTotal / 100;
System.out.print("\nEuros: " + notes);
double remain = recieve % notes;
System.out.printf("\nRemain: %.2f",remain);
double remain2 = remain / 0.5;
System.out.println("\nTest: ",remain2);
我的输出是:
Input money recieved: 45,78
Cents in total 4578
Euros: 45
Remain: 0,78
Test: 1.5600000000000023
答案 0 :(得分:1)
您可以使用Math.round()
函数作弊:
double roundOff = Math.round(valueToRound * 100.0) / 100.0;
这可确保您将值保持为double,这样您就可以根据需要对其进行进一步操作。
答案 1 :(得分:0)
一种方式可能有点残酷,但内存效率高(不创建新对象或变量)。只需将double
转换为int
即可向下舍入。
public class RoundingTest {
public static void main(String[] args) {
double num = 1.56;
System.out.println("Test: " + (int)num);
}
}
输出:
Test: 1
如果需要,这还允许您保持原始双重不变,以便进一步计算。