#include <stdio.h>
int main() {
float k;
scanf("%f", &k);
printf("%f", k);
}
在这个简单的程序中,当我输入一个最多包含8位数字的数字时,它会正确显示。为什么scanf为大浮点数输入错误的输入?
但是,如果我超过了8位,即对于输入123456789
输出是123456792
。
为什么会发生这种情况?那么有趣的是,如果我在123456789
和123456796
之间输入任何数字,那么它总是会显示123456792
。
是否与浮点数的8位小数精度有关?
https://stackoverflow.com/questions/12560291/set-back-default-precision-c –
@HariomSingh链接的问题是如何相关的?甚至没有相同的语言。 – Toby
@Toby问题最初是用[tag:C++]进行双重标记的,将其删除,因为代码和文本都没有引用C++。 –