你定义的float一般有效数字只有6到7位,就是说只有前面的1234567是有效的,后面的是无法估计的,自然运算结果也是坑爹的,你改成double 或者long double试试
回去看了下书,double可以定义15到16位。long double 可以定义18到19位
我记得谭浩强C语言里有句话大概是以下意思:一个很大的浮点数加一个小的浮点数结果是那个大的数。
若没有那就在《C++程序设计语言》里。。。
关键是printf输出里面的东西
%f+50=%f\n,a,b
输出的第一个%f和a对应则是输出a的值~
然后输出的第二个%f对应b则是a+50的值
+50=
这些你可以不看的,只是输出来而已
精确度的问题吧,定义成double试试