掌芝士 发表于 2020-6-26 11:05:17

变量计算

大佬康康这个等于几,为啥子啊
萌新求助

掌芝士 发表于 2020-6-26 11:10:39

我算出来2.5
那个浮点数算完不是1.5吗
然后后面那个是1
加起来2.5
我知道我错了,但不知道为啥错了
大哥们救救我

405794672 发表于 2020-6-26 11:19:11

你是咋知道你错了的?这题目让我想起一丝若有若无的记忆。
曾经我进行计算,满以为float类型,应该有小数的。结果没有。只好在算式中把3写成3.0才正确
第二,这个强制转换我不清楚到底是算完了再转换,还是先转换再运算。
要验证,拿去运行一下就知道了。

掌芝士 发表于 2020-6-26 11:21:03

405794672 发表于 2020-6-26 11:19
你是咋知道你错了的?这题目让我想起一丝若有若无的记忆。
曾经我进行计算,满以为float类型,应该有小数 ...

我提交了,显示的错误一脸懵逼

掌芝士 发表于 2020-6-26 11:22:07

405794672 发表于 2020-6-26 11:19
你是咋知道你错了的?这题目让我想起一丝若有若无的记忆。
曾经我进行计算,满以为float类型,应该有小数 ...

我运行出来是2我丢,我现在一脸懵逼啊

jhanker 发表于 2020-6-26 11:29:33

估计不同编译器会产生不同结果 3.5

405794672 发表于 2020-6-26 11:30:59

掌芝士 发表于 2020-6-26 11:22
我运行出来是2我丢,我现在一脸懵逼啊

运行出来是2说明前一个是1而不是1.5。也就说明先把整型运算完毕,等于1后,再强制换成float,等于1.0

sunrise085 发表于 2020-6-26 11:31:53

(float)(a+b)/2=(float)(2+3)/2=5.0/2=2.5
(int)x%(int)y=3%2=1
最终结果应该是 2.5+1=3.5

永恒的蓝色梦想 发表于 2020-6-26 11:33:21

3.5,强制类型转换运算符优先级很高。

永恒的蓝色梦想 发表于 2020-6-26 11:41:57

405794672 发表于 2020-6-26 11:30
运行出来是2说明前一个是1而不是1.5。也就说明先把整型运算完毕,等于1后,再强制换成float,等于1.0

整形运算完毕后也不会等于1。

jhanker 发表于 2020-6-26 15:16:51

405794672 发表于 2020-6-26 11:19
你是咋知道你错了的?这题目让我想起一丝若有若无的记忆。
曾经我进行计算,满以为float类型,应该有小数 ...

你是很久以前就学c语音了?

405794672 发表于 2020-6-26 15:46:41

jhanker 发表于 2020-6-26 15:16
你是很久以前就学c语音了?

没有,才学没多久。我学的时候少。不是一直在学的,所以有若有若无的记忆

jhanker 发表于 2020-6-26 16:05:38

405794672 发表于 2020-6-26 15:46
没有,才学没多久。我学的时候少。不是一直在学的,所以有若有若无的记忆

大学的时候学了,有些细节都忘了

405794672 发表于 2020-6-26 16:31:09

jhanker 发表于 2020-6-26 16:05
大学的时候学了,有些细节都忘了

现在也方便,用的时候可以百度。万事有度娘,不怕
页: [1]
查看完整版本: 变量计算