C规定没有标明取小数点几位的就留6位 但不是四舍五入 也不是取整 就是留下几位的数
float类型的特点:有效数字为7位
double类型的特点:有效数字为16位
这道题目其实包括了两个知识点:
1>这里x和y都是float类型,为了使计算结果更加精确,它们相加的过程中都自动转化为double类型,得出结果后又自动将结果转化为float类型.
2>以"%f"形式输出时,整数部分原封不动,小数点后保留六位.
故上题的标准答案应为44444.4*****,星号部分会因为编译系统的不同而不同。
出现这种现象并不是c语言不好,而是自然产生的误差。