我必须创建一台自动售货机,根据我的AP计算机科学课程的温度调整其价格。我现在唯一的问题是机器不应该接受便士,所以我试图接受用户的输入(金额)并按.05
模数,如果这导致除了0.0
它重新运行程序并提示用户输入不包含便士的输入;但是,即使我输入了一个数字,如果由.05
修改,也会产生0.0
,它仍会告诉用户“请不要便士”。用户输入是double
而不是int
,我不知道是否会影响它,但我会附上与代码类似的内容:
double userMoney = scan.nextDouble
double penny = userMoeny % .05
if (penny != 0.0)
says something that says no pennys
else
executes the rest of the code
我知道格式不正确但我现在无法访问原始代码。
正如我之前所说的,无论我输入什么,当我按.05
进行修改时,它似乎总是出现在0.0
之外,即使它应该是。11810598;Chêne G, Angelini E, Cotte L, Lang JM, Morlat P, Rancinan C, May T, Journot V, Raffi F, Jarrousse B, Grappin M, Lepeu G, Molina JM;2002;Mar;Role of long-term nucleoside-analogue therapy in lipodystrophy and metabolic disorders in human immunodeficiency virus-infected patients.
。
答案 0 :(得分:2)
您可以将金额存储为整数(以分为单位),并在向用户显示时将其除以100。
通过这种方式,您还可以克服0.1 + 0.2 != 0.3
等浮点问题。