gpt4 book ai didi

c++ - Fmod 函数显然输出预期的 double 值,但 if(fmod == expected double) 的计算结果不为真

转载 作者:搜寻专家 更新时间:2023-10-31 02:05:24 26 4
gpt4 key购买 nike

<分区>

当我调用我的函数时:

formatCurrency(7.5);

string formatCurrency(double cash) {
cout << "fmod(cash,.1) is equal to " << fmod(cash,.1) << endl;
if(fmod(cash,1) == 0) {
cout << cash << ".00";
}
else if(fmod(cash,.1) == 0.1) {
cout << cash << "0";
}
else if(fmod(cash,.01) == 0.01) {
cout << cash;
}
else{
cout << "Error: unable to display in currency format";
}
return "";
}

fmod(7.5,.1) 显然等于 .1,当我运行该程序时它甚至会这样输出。但是我得到以下输出:

fmod(cash,.1) is equal to 0.1
Error: unable to display in currency format

什么给了?我几乎看不出我的代码有什么问题。该代码确实适用于整数/第一个 if 语句,但任何带有小数点的东西都会让事情变得冒险。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com