跳到正文
信奥逐课

第 033 课

double

🟢 入门 约 5 分钟

一句话理解

double 是双精度小数,竞赛中存实数的首选。

为什么要学

面积、概率、实数二分,都会用到它。

讲解

有效数字大约 15 位。仍然不是精确的十进制:0.1+0.2 不一定严格等于 0.3。

比较两个 double,不要直接 ==,而看差的绝对值是否小于 eps,比如 1e-8。

输出小数位数用 fixedsetprecision,后面有专课。

例子

double a = 0.1, b = 0.2;
cout << (a + b == 0.3); // 可能是 0

二进制浮点无法精确表示很多十进制小数,所以相等判断要谨慎。

常见错误

练习 做完再看下一课

比较两个 double,更稳妥的是?

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课