如下列程序所示
int main()
{
double a = 5.45;//为什么一定要双精度数据才能利用%.1f精确到一位小数
printf("%.1f", a);
}
其中若将a由double类型替换成float类型则会输出5.4,而非四舍五入后的5.5
人尽皆知float类型大小为4个字节,而double类型为8个字节大小
float类型的有效数字为8位,而double为16位
但我仍未弄清二者区别,因为我所输出的无论float类型还是double类型,其有效数字均为7位。
或许float类型不能通过%.1f的方式精确到一位小数也与上述有关吧。
一切尚未有思绪啊!!!
文章探讨了为什么使用%.1f在double类型变量(5.45)中能精确到一位小数,但换成float类型(5.4)时却不是,涉及浮点数精度、字节大小和有效数字的区别。作者疑惑可能与float类型的有效数字限制有关。


被折叠的 条评论
为什么被折叠?



