我正在努力学习更精细的计算,并且已经开始同时学习Linux和C.顺利航行直到现在。
我在Kernel 3.16.0-38-generic上运行Linux Mint 17,并使用Code :: Blocks 13.12作为我的IDE。
下面的贴片是我使用数据类型,变量和printf()的练习代码,以及我在vt中看到的相关输出 - 我看到的奇怪之处在于我在使用float数据类型的小数位实验中,它似乎是在第5位之后跳过值,最后是小数点后第4位。
我是否滥用调用变量的过程,我错过了代码中的错误,或者这是CodeBlocks中的错误?另外 - 我不确定为什么我的代码片段在预览中完全混合在一起,所以我为可读性差而道歉
要编译和执行的代码:
/* Prints a message on the screen */
#include <stdio.h>
echar a1 = 'a';
int i1 = 1;
float f1 = 0.123456;
int main()
{
printf("Testing %c la%sof characters using variables \n", a1, "rge string " );
printf("This line has the values %d and %f.\n", i1, f1);
printf("%f can also be displayed as %.5f or %.4f or %.3f or %.2f or %.1f or %.0f \n",
f1, f1, f1, f1, f1, f1, f1);
printf("Which is an integer . . .");
return 0;
}
编译和执行代码的输出
Testing a large string of characters using variables
This line has the values 1 and 0.123456.
0.123456 can also be displayed as 0.12346 or 0.1235 or 0.123 or 0.12 or 0.1 or 0
Which is an integer . . .
Process returned 0 (0x0) execution time : 0.002 s
Press ENTER to continue.
感谢您提供的任何帮助。我正在学习C编程绝对初学者 - 格雷格佩里
答案 0 :(得分:3)
正如评论中所提到的,最后一位数字正在四舍五入。
如果你有这个:
float f1 = 0.777777;
输出将是:
This line has the values 1 and 0.777777.
0.777777 can also be displayed as 0.77778 or 0.7778 or 0.778 or 0.78 or 0.8 or 1
同样,如果你有这个:
float f1 = 0.999888;
你会得到这个:
This line has the values 1 and 0.999888.
0.999888 can also be displayed as 0.99989 or 0.9999 or 1.000 or 1.00 or 1.0 or 1