我对基本类型转换有疑问。
#include<stdio.h>
int main()
{
printf("%.22f",0.30);
return 1;
}
我得到的输出是 0.299999999999999888978
为什么 0.3 转换为较小的值
非常感谢任何帮助
南印度语
最佳答案
这是因为 0.30
无法用二进制 float 精确表示。
在内部,只能存储 0.30
的近似值。因此,当您全部打印出来时,您会得到一个略有不同的数字。
关于c++ - printf 在使用 %.22f 时更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736391/