我正在尝试创建一个根据用户输入的金额确定佣金的功能。它需要用户输入 double 并使用它来确定它用于哪个方程。但是我编写的代码总是转到 else 语句,我不确定我的条件有什么问题。
double calculate(double s)
{
double c;
if (s > 300,000)
{
c = 25,000 + (0.15 * (s-300,000));
cout << "went to if" << endl;
return c;
}
else if (300,000 > s && s > 100,000)
{
c = 5,000 + (0.10 * (s-100,000));
cout << "went to else if" << endl;
return c;
}
else
{
c = 0.05 * s;
cout << "went to else" << endl;
return c;
}
}
最佳答案
s > 300,000
是一个逗号表达式,相当于(s > 300),000
。逗号表达式的值是列表中最后一个的值,此处为 000
。转换为 bool
时计算结果为 false
。
你可以这样写
if( s > 300'000 )
或者,如果编译器不支持这种新奇的表示法,就像
if( s > 300000 )
或者你可以定义
double const k = 1000;
然后写
if( s > 300*k )
对于 25 000、100 000 和 5000 字面量也是如此。
关于c++ - if/else if 总是去 else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40207327/