1167 - 双精度实数的有效数位和精度误差实验

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 128 MB

体验双精度型变量能存放含小数的实数、存放实数时会出现误差、虽然能表示很大的数但有真正准确的有效数位是有限的

按以下要求编程

 定义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保存到双精度变量的精度误差。

数一数,双精度类型的有效数位是几位?和讲义不太一样

&nbsp;

输入

输出

样例

输入


                            

输出


                            

来源

C++基础教程-变量和数据类型