c++ - if/else if 总是去 else 语句

标签 c++ if-statement

我正在尝试创建一个根据用户输入的金额确定佣金的功能。它需要用户输入 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/

相关文章:

c++ - 如何修复文件路径大小写?

python过滤字符串只显示少于2个字的标签

ruby-on-rails - first_or_create 只插入

Powershell IF 和 not 条件无法正常工作

c++ - 在 C++ 中将 typedef 函数从头文件实现到源文件中

c++ - For循环在输出时未显示正确的计数,在C++中显示的数字过高

C++ 未定义对命名空间中函数的引用

Java 从扫描仪输入中查找最小值总是导致零

python - 在 python 中的 re.match 中使用变量

c++ - 快速选择 DOM 中的元素