c语言中浮点型常量问题?
floatr;r=3.14;3.14是以double型存在的吗?系统提示"constdoubletofloat可能丢失数据”,那么浮点型常量3.14显然是不会丢失数据的(...
float r;
r=3.14;
3.14是以double型存在的吗?
系统提示"const double to float 可能丢失数据”,那么浮点型常量3.14 显然是不会丢失数据的(float是7位有效数字),它才三位,要不要理会提示,会出错的话请举列说明。
运算的两个数中有一个数为float或double,结果为double,因为所有float都按double型进行运算。
以上是书中所写,请给解释一下。还有我的第二个问题
第二、为什么float与float,或与int等运算时,得到float? 不是说计算时float会转换为double才运算吗,结果怎么不是double. 展开
r=3.14;
3.14是以double型存在的吗?
系统提示"const double to float 可能丢失数据”,那么浮点型常量3.14 显然是不会丢失数据的(float是7位有效数字),它才三位,要不要理会提示,会出错的话请举列说明。
运算的两个数中有一个数为float或double,结果为double,因为所有float都按double型进行运算。
以上是书中所写,请给解释一下。还有我的第二个问题
第二、为什么float与float,或与int等运算时,得到float? 不是说计算时float会转换为double才运算吗,结果怎么不是double. 展开
5个回答
展开全部
3.14默认是在double形式存在的,这是规定,就像法律一样,只能死记,没有道理而言。r是float型,转换为double型会有丢失数据的可能,但是编译器并不能完全确定,到底会不会丢失数据,因此,出名对你的安全,编译器会给你一个警告,当然3.14这样的数肯定不会丢失,可以不用理会他这条警告。
当不同类型的表达式和变量混合使用一个表达式时,它们将被转换为同一类型。
转换后每对操作数都成为同一类型,运算结果后的类型与转换后的结果相同。
转换规则为.只要两个操作数中有一个是double型的,则另一个会转换为double型.否则只要有一个是float型的,另一个会转换为float型.否则,有一个是long型的,另一个会转换为long型.否则两个操作数都会转换为int型.其转换规则如下图.
参考资料: 我
展开全部
在C语言中,带有小数点的数值是按 double 参与计算的,不能以 float 类型参与计算,如果你要确认用float,则一定要用强制转换符进行转换。
float r;
r=(float)3.14;
C的自动转换是由小往大转, double --》 float ,是由打往小转,因此必须用转换符才行。
float r;
r=(float)3.14;
C的自动转换是由小往大转, double --》 float ,是由打往小转,因此必须用转换符才行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会有问题的 直接用吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个可以不用理会的~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
r=3.14f;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询