实数精度问题:请问double的数加什么后缀啊?

theMostValuablePers 2003-08-24 06:09:23
float f=3.22f;
long i=3333L;
那double后加什么?
-----------------
float f=3.22f;和float f=3.22;有什么区别吗?
-----------------
谢绝低手误导~~~
...全文
6050 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxjddd 2003-08-27
  • 打赏
  • 举报
回复
TCPL上说:
按默认规定,浮点数常量的类型是 double。
如果需要写类型为 float 的浮点数常量的,你可以通过后缀 f 或 F 定义它们。
如果需要类型为 long double 的浮点数常量,你可以通过后缀 l 或 L 定义它们。
njtu 2003-08-27
  • 打赏
  • 举报
回复
float f=3.22f;
long i=3333L;
那double后加什么?

只有f,l两个后缀,不过我觉得晨星说的有道理。应该默认是double和int.
-----------------
float f=3.22f;和float f=3.22;有什么区别吗?
没有任何区别。在这里会自动转换

后缀用于强制类型转换相当于(float)3.22; (long)5,不过没没有临时变量生成。

可以这么理解
默认的浮点数的输入类型为double
默认的整数的输入类型为int
如果你要输入一个长整数 应该这么写 long int li = 0L;
如果你要输入一个单精度浮点数 应该这么写 float f = 0.0;
否则可能会溢出。
float f
f = 3.22 // f = (float)3.22 3.22的类型是double
f = 3.22F // f = 3.22F 3.22F的类型是float

long l //假设int 的范围为-32768 - 32767

l = 32767 // l = (long)32767 32767的类型是int
l = 32769 // 错误,溢出!int 最大为32767
l = 32769L //正确,32769L的类型是long


以上是我的观点,如果有不同见解请发信息给我
  • 打赏
  • 举报
回复
在哪啊
xzxu 2003-08-25
  • 打赏
  • 举报
回复
钱能的书应该有啊。看一下吧。
  • 打赏
  • 举报
回复
?
  • 打赏
  • 举报
回复
float f=3.22f;和float f=3.22;有什么区别吗?
廖秀锋 2003-08-24
  • 打赏
  • 举报
回复
不然就是lf
廖秀锋 2003-08-24
  • 打赏
  • 举报
回复
fl
ck_chuyun 2003-08-24
  • 打赏
  • 举报
回复
不加
晨星 2003-08-24
  • 打赏
  • 举报
回复
默认就是double。就好像整数默认就是int。

70,035

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧