gpt4 book ai didi

c++ - C++程序奇怪输出的原因

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:16 27 4
gpt4 key购买 nike

<分区>

这是一个简单的c++程序的代码:

#include <bits/stdc++.h>
using namespace std;

int main() {
double x = 3;
double y = .15;
while(x>0) {
printf("%.15f ",x);
cout<<x<<endl;
x-=y;
}
return 0;
}

输出:

> 3.000000000000000 3
> 2.850000000000000 2.85
> 2.700000000000000 2.7
> 2.550000000000000 2.55
> 2.400000000000000 2.4
> 2.250000000000000 2.25
> 2.100000000000001 2.1
> 1.950000000000001 1.95
> 1.800000000000001 1.8
> 1.650000000000001 1.65
> 1.500000000000001 1.5
> 1.350000000000001 1.35
> 1.200000000000001 1.2
> 1.050000000000001 1.05
> 0.900000000000001 0.9
> 0.750000000000001 0.75
> 0.600000000000001 0.6
> 0.450000000000001 0.45
> 0.300000000000001 0.3
> 0.150000000000001 0.15
> 0.000000000000001 1.05471e-15

现在看第 7 行。这不奇怪吗?由于某种原因,这里 2.25 - .15 是 2.100000000000001。我知道这可以通过使用 float 来避免。但我想知道为什么会这样。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com