体验双精度型变量能存放含小数的实数、存放实数时会出现误差、虽然能表示很大的数但有真正准确的有效数位是有限的
按以下要求编程
定义d1 d2 d3 d4 四个双精度型变量。
将常数43211234保存到变量d1 计算d1*d1*d1并将结果保存到变量d2 计算1.0/11并将结果保存到变量d3 将常数1.9保存到变量d4
输出"d1="以及变量d1的值 输出"d1*d1*d1="以及变量d2的值 输出"1.0/11="以及变量d3的值 输出"1.9="以及变量d4的值
设置输出位数为25位(cout.precision(25);) 输出"d1="以及变量d1的值 输出"d1*d1*d1="以及变量d2的值 输出"1.0/11="以及变量d3的值 输出"1.9="以及变量d4的值 |
部分样例输出
d1=4.32112e+07
d1d1d1=8.06845e+22
提示:
结果出现类似 1.23e+05 表示 1.23*10<sup>5 </sup>即等于 123000
注意:43211234的立方应该是80684480377774939360904,观察双精度数在第几位开始出现误差。(误差是正常的)
对比 1 / 11 与 1.0 / 11结果的不同。1 / 11是整除结果为整数部分,1.0 / 11是实数除结果为实数
观察1.9保存到双精度变量的精度误差。
数一数,双精度类型的有效数位是几位?和讲义不太一样
C++基础教程-变量和数据类型