8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

If 语句无法计算基本浮点数问题

RORI 1月前

44 0

我正在学习 Bjarne Stroustrup 的《编程原理与 C++ 实践》一书,目前我被第 4 章的第 5 个“练习”问题难住了。有一系列...

我正在阅读 Bjarne Stroustrup 的《编程原理与 C++ 实践》一书,目前我被第 4 章的第 5 个“练习”问题难住了。

有一系列问题旨在构建复杂的 If-Else If-Else 语句,我 认为 我理解其背后的逻辑。然而,这第 5 个问题却难倒了我:“更改程序,使其在写出两个数字相差小于 1.0/100 时,写出数字几乎相等。\”无论出于什么原因,我无法让“If 语句”在 0.5 以外的浮点值之间正确求值。或者换句话说,只有当两个值的差等于 0.5 时,它才会正确求出上面列出的输出。

这是我的代码:

int main() {

    double i = 0;
    double j = 0;
    while (std::cin >> i >> j) {
        std::cout << "\n";
        std::cout << i << "\t" << j << "\n" << "\n";
        if (i - j == 0.01) {
            std::cout << "The Two Numbers Are Almost Equal" << "\n";
        }
        else if (i > j) {
            std::cout << "The Larger Value Is " << i << "\n";
        }
        else if (i == j) {
            std::cout << "The Numbers Are Equal" << "\n";
        }
        else {
            std::cout << "The Larger Value Is " << j << "\n";
        }
    }
}

我甚至尝试用同样的前提创建一个基本的 if-else 语句,但编译器仍然无法根据第一个条件评估正确的语句。有什么帮助吗?

帖子版权声明 1、本帖标题:If 语句无法计算基本浮点数问题
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由RORI在本站《if-statement》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我不同意这是一个合适的重复。问题似乎在于制定正确的逻辑表达式,而不是浮点精度。

返回
作者最近主题: