c语言中double是双精度的,有效数字是15到16位为什么下面的运算结果是6位?

c语言中double是双精度的,有效数字是15到16位为什么下面的运算结果是6位?float的是7位,而运算结果是9位?

你是不是把有效数位、整数有效数位、小数有效数位都混淆到一起了?
无论是float型,还是double型,小数位最多都是6位
你所说的double型是15、16位,float型是7位,是整数位。
而两者的和,就是数的有效数位。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-12
因为printf %f 默认只输出小数后6位,可以试试 %.16f
第2个回答  2017-03-02
double默认小数点保留6位追问

float的有效数字是7位,为什么结果显示的有效数字是9位啊?

追答

float那个是溢出。1.234567类型为double

相似回答