问题求解
10*T*T/2;1/2*10*T*T
这两个的区别是啥?
小白求解答 第二个答案是0,第一个取决于T的类型 第一个:
(1)T是浮点类型(使用 float、double...定义),结果会是一个小数。
例如:T = 1.5; 结果就是10 * 1.5 *1.5 /2 = 11.25。
(2)T是一个整数类型(使用int、long、unsigned int ... 定义),结果会是一个整数,舍弃余数,
又因为本身前面*10,所以不管T取值为多少,都可以整除2,所以说结果本身就不存在舍弃的余数。
例如:T = 3;结果为10*3*3/2=45.
另外:若题目为T*T/2 ,T = 3,结果则为3*3/2 = 4(余数为1,被舍弃)。
第二个:
无论T取什么类型的值,结果都为零。
原因:1/2 = 0(余数为1,被舍弃),0*任何值均为零,所以无论T取什么类型的值,结果都为零。
若计算小数:则把题目改为:1.0/2.0*10*T*T,此时 1.0/2.0 = 0.5啦! wp231957 发表于 2021-9-29 07:19
第二个答案是0,第一个取决于T的类型
欧克 番杰 发表于 2021-9-29 10:30
第一个:
(1)T是浮点类型(使用 float、double...定义),结果会是一个小数。
例如:T = 1.5; 结果就是 ...
那怎么写可不可以弄成1/2=0.5 鲸悦海 发表于 2021-9-29 12:40
那怎么写可不可以弄成1/2=0.5
那你只能先定义一个浮点型的数据,然后让它 = 1/2;
例如:
float i ;
i = 1/2;
这个时候算出的i的值就是0.5,
其中,你写是写出i = 1/2;
但是对于编译器看来,你写入的其实是:i = 1.0/2.0;(因为你限制了i的类型为浮点型)
番杰 发表于 2021-9-29 12:54
那你只能先定义一个浮点型的数据,然后让它 = 1/2;
例如:
float i ;
谢谢大佬
鲸悦海 发表于 2021-9-29 13:18
谢谢大佬
{:5_109:}
页:
[1]