(求助)关于整数乘法问题

回复帖子

@smallC233 2020-10-18 13:39 回复

代码如下:

#include <iostream>
#include <cstdio>
using namespace std;

int a,b;

int main()
{
    a=100*1.2;
    b=100;
    b*=1.2;
    printf("%d %d",a,b);
    return 0;
}

运行结果是120 119

有没有大佬可以给小蒟蒻解释一下原理,群里的大佬让我去了解一下IEEE754,但是小蒟蒻表示并不能看懂

@NSObject 2020-10-18 13:46 回复 举报

可能 是因为您的变量定义为了 int 类型然而使用 int 类型做浮点数运算是不稳定的, $120$ 可能被保存成了 $119.99999999$。

@smallC233 2020-10-18 13:46 回复 举报

奥,对了,上面那个是本机的运行结果,用洛谷的IDE运行两个是120 120

反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。