我遇到了C++中的數學問題。我使用的IDE是帶有GNU編譯器的Code :: Blocks。所以,問題是當我要求用戶輸入並且用戶給我一個大於10000的數字時,比如10001等等,系統返回6.9531e-308作爲輸出!我不知道這是什麼。使用PerCent的C++數學
#include <iostream>
double moneyBonus (double money, double& bonus);
int main()
{
double money, earnMoney, bonus;
std::cin >> money;
earnMoney = money * (40.0/100.0);
moneyBonus(money, bonus);
std::cout << bonus << std::endl;
return 0;
}
double moneyBonus(double money, double& bonus)
{
if (money >= 0 && money <= 1000)
{
bonus = money * (3.0/100.0);
}
else if (money > 1000 && money <= 2000)
{
bonus = money * (5.0/100.0);
}
else if (money > 2000 && money <= 4000)
{
bonus = money * (7.0/100.0);
}
else if (money > 4000 && money <= 10000)
{
bonus = money * (8.0/100);
}
}
編輯:解決! (我沒有找到任何按鈕來解決這個問題)
那麼,您期待什麼價值?爲什麼? –
您應該從函數'moneyBonus'返回一個值,或者將返回類型更改爲'void'。這不是問題的原因。 – Slava
而不是'3.0/100.0',你可以使用0.03,它將返回完全相同的值。否則使用'(money * 3.0)/ 100.0' –