打印在使用%.22f时改变的值

printf changing the value while using %.22f

本文关键字:改变 22f 打印      更新时间:2023-10-16

我有一个基本类型转换的问题。

#include<stdio.h>
int main()
{
     printf("%.22f",0.30);
     return 1;
}

我得到的输出是0.29999999999999999999888978

为什么0.3被转换成较小的值

任何帮助都非常感谢

Nandish

这是因为0.30不能精确地用二进制浮点数表示。在内部,只能存储0.30的近似值。因此,当您将其全部打印出来时,您将得到一个略有不同的数字。

http://en.wikipedia.org/wiki/Floating_point