C语言程序float a, a=123456.789e7 b=a+50; printf(%f+50=%f尀n,a,b);

结果是1234567954432.000000+50=1234567954432.000000告诉我原理,新手自学 C
2024-12-01 23:16:34
推荐回答(4个)
回答1:

你定义的float一般有效数字只有6到7位,就是说只有前面的1234567是有效的,后面的是无法估计的,自然运算结果也是坑爹的,你改成double 或者long double试试

回去看了下书,double可以定义15到16位。long double 可以定义18到19位

回答2:

我记得谭浩强C语言里有句话大概是以下意思:一个很大的浮点数加一个小的浮点数结果是那个大的数。
若没有那就在《C++程序设计语言》里。。。

回答3:

关键是printf输出里面的东西
%f+50=%f\n,a,b

输出的第一个%f和a对应则是输出a的值~
然后输出的第二个%f对应b则是a+50的值
+50=
这些你可以不看的,只是输出来而已

回答4:

精确度的问题吧,定义成double试试