在以下的代码段中,变量x的值为0:
float x;
x=1/2;
变量x虽然被定义为单精度浮点型,但以上代码执行后,x的取值为0,而不是0.5。这是因为在计算表达式1/2时,由于1和2都是整型常量,计算的结果就只能取整数部分,故为0。
为了防止这种情况出现,可以使用以下两种方法:
(1)使用1.0表示被除数是一个浮点型数据,即x=1.0/2。
(2)使用强制类型转换,即(float)1/2。强制类型转换是使用显式表达将一种数据类型转换为另一种数据类型,其格式为:
(类型名)表达式
在以下的代码段中,变量x的值为0:
float x;
x=1/2;
变量x虽然被定义为单精度浮点型,但以上代码执行后,x的取值为0,而不是0.5。这是因为在计算表达式1/2时,由于1和2都是整型常量,计算的结果就只能取整数部分,故为0。
为了防止这种情况出现,可以使用以下两种方法:
(1)使用1.0表示被除数是一个浮点型数据,即x=1.0/2。
(2)使用强制类型转换,即(float)1/2。强制类型转换是使用显式表达将一种数据类型转换为另一种数据类型,其格式为:
(类型名)表达式
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。