崔铭1315 发表于 2020-8-2 08:07:53

0.329*10^2为什么不是实型常量

0.329*10^2为什么不是实型常量 ?{:5_94:} 我觉得对呀

永恒的蓝色梦想 发表于 2020-8-2 08:15:50

这里的 ^ 不是乘方,而是异或的意思。
因为乘法比异或优先级高,所以式子是这样运算的:(0.329*10)^2
也就是:3.29^2
因为浮点数无法做异或运算,所以出错。

baige 发表于 2020-8-2 08:17:35

指数形式:
在C语言中,则以“e”或“E”后跟一个整数来表示以“10”为底数的幂数。2.3026可以表示为0.23026E1、2.3026e0、23.026e-1。C语言语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。如e3、5e3.6、.e、e等都是非法的指数形式。注意:在字母e或E的前后以及数字之间不得插入空格。
0.329*10^2如果出现在源代码中,会被当做是一个表达式,先计算0.329和10的积,结果再和2作^(位异或)运算。但由于积是double类型的,不能参与位运算,会给出编译错误。
页: [1]
查看完整版本: 0.329*10^2为什么不是实型常量