123=123.000吗?

如题所述

LZ的分类是“其他编程语言”,从程序语言角度看,不能这样等号连过去。

123表示一个整型数,123.000表示一个浮点数(实型数)。

可以将整型数赋值给实型变量,但不能将实型数赋值给整型变量,否则程序会报错。


      而对于C/C++语言的学习者,123=?=123.000更是一个很重要的问题,是许多初学者容易忽略的细节。对于这样一个语句:

float a;
a=1/3+1/3+1/3;
printf("%.3f\n",a);

      输出结果会是什么呢?1.000?0.999?试试看,答案竟然是搞笑的0.000!(见附件中的“a1”文件夹)

      我们来改一下程序:

float a;
a=1.0/3+1.0/3+1.0/3;
printf("%.3f\n",a);

      (见文件夹a2)

      输出结果是  1.000,至少可以理解了。

      为什么呢?因为在C/C++语言中,除号/、乘号* 等都是二目运算符,即符号两边各有一个数据,有一个规定就是,如果符号两边都是整型,则运算结果也是整型,就算计算出来是小数,也只保留整数部分。向上面的第一段代码,1/3的两边都是整型,结果也是整型,即0.3333……的整数部分,就是0。三个0相加的结果赋给a,输出当然是0.000(保留3位小数)了。

       但是,只要把1/3的左右两边任意一个(或两个都)改写为浮点数,如

                                     1.0/3       或        1/3.0        或        1.0/3.0

最后的结果就会是0.333……了,这样a=0.999……保留3位小数,是1.000,因此出现了上述第二个程序中的答案。

       因此,123和123.000确实不能说完全相等。


       当然了,如果LZ不会计算机语言,以上就当了解一下好了。


       但从数学角度,123.000=123当然是对的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-02
☑=

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网