先介绍一下基础概念:
有效数字: 在数学中,有效数字是指在一个数中,从该数的第一个非零数字起,直到末尾数字止的数字称为有效数字,如0.339的有效数字有三个,分别是3,3,9。
float: 单精度浮点型,表示十进制7位或8位有效数字;
double: 双精度浮点型,表示十进制15位或16位有效数字;
(我的机器(系统windows 10;编译器:codeblocks 17.12 )上是float7位,double16位,不同机器和编译器可能会有差异)
%f: 以10进制形式输出float类型;
%lf: 以10进制形式输出double类型;(这是l不是1)
我本来只是打算编程验证一下的,结果发现实验结果和预期不符:double类型怎么也只有7位有效数字呀?
经过多方资料查阅,发现:
%f和%lf默认保留6位小数,不足6位的以0补齐,超过6位的按四舍五入截断(所以最后一位原本是6,四舍五入后变成了7)。 一下子就知道了问题的所在,知道问题以后,解决也就很方便了。
比如我们要输出小数点后15位的数,可以用 %.15f 实现:
最后一个问题,我怎么知道我的电脑上float是7位,double是16位呢?
这是可以通过验证,看出来的;
数据结构笔记整理——float和double使用
最新推荐文章于 2024-05-28 16:13:50 发布