标题:C语言中关于数字的后缀
只看楼主
灵魂摆渡人
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-7-19
结帖率:0
已结贴  问题点数:10 回复次数:8 
C语言中关于数字的后缀
大牛们!
原题目;
long a = 100;
int b = 294;

float x = 52.55;
float y = 18.6;
52.55 和 18.6 这两个数字默认都是 double 类型的,将 52.55 赋值给 x,必须先从 double 类型转换为 float 类型,而将 18.6 赋值给 y 就不用转换了。

同样是double类型,为什么18.6不用转换成float类型?
搜索更多相关主题的帖子: C语言 数字 float double 类型 
2018-07-19 22:15
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:2 
你为什么觉得 18.6 不用转换?

https://zh.
2018-07-20 10:25
灵魂摆渡人
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-7-19
得分:0 
回复 2楼 lin5161678
这个问题他明确告诉我18.6不用转换为float类型,我也很纳闷这个问题
2018-07-20 16:34
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:2 
这两个数定义的时候,就是单精度数,所以不用转换。
2018-07-20 22:12
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:2 
在内存中占有的字节数不同
单精度浮点数在机内占4个字节
双精度浮点数在机内占8个字节
(2)有效数字位数不同
单精度浮点数有效数字8位
双精度浮点数有效数字16位
(3)所能表示数的范围不同
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38
双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

是不是因为这。
2018-07-21 10:19
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:2 
这个问题他明确告诉我18.6不用转换为float类型
------ 这个“他”是谁呀
2018-07-22 12:43
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
赋值时,=号两边的数据类型不同时,=号右边的数据类型转换为左边的数据类型。
2018-07-22 14:37
简方
Rank: 1
等 级:新手上路
威 望:1
帖 子:5
专家分:0
注 册:2022-3-30
得分:0 
兄弟,你要看底层知识才行哦。
因为:
C语言固定,一个数字(包括整数和小数)它们是有默认类型的:
1)对于整数,它的默认是int类型;
2)对于小数,它的默认是double类型;

所以:100的默认是int,而变量名现在是long,所以将 100 赋值给 a,必须先从 int 类型转换为 long 类型,而将 294 赋值给 b 就不用转换了
所以:52.55和18.6它们的默认是doule,而变量名现在是float,所以要将52.55和18.6从double类型转换为float类型(你的代码里错了,应该是double y=18.6,这样才不需要转换哦)
2022-03-30 23:01
简方
Rank: 1
等 级:新手上路
威 望:1
帖 子:5
专家分:0
注 册:2022-3-30
得分:0 
回复 8楼 简方
另外,如果不想使用默认的,就得数字后面加后缀呗
2022-03-30 23:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488705-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.123801 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved