浮点数转整数问题

yangtn 2006-07-03 10:35:44
float y =0.9;
int x = int(f*1000);
为何 x = 899 非900,而double y就可以等于900呢?
...全文
176 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pappGG 2006-07-03
  • 打赏
  • 举报
回复
浮点数都有精度问题
一般都建议使用double,因为float精度比较低,只有7位有效数字
晨星 2006-07-03
  • 打赏
  • 举报
回复
再给楼主个帖子看看:

http://community.csdn.net/Expert/topic/4835/4835864.xml?temp=.6980097
我啃 2006-07-03
  • 打赏
  • 举报
回复
对类!steedhorse(晨星)说的对
浮点数操作十分要注意精度的问题
float y =0.9;
int x = int(f*1000);
可能f*1000=899.9999999994(float)转成int就是899,精度问题嘛,DOUBLE精度高当然可以,一般用int(f*1000+0.5)
晨星 2006-07-03
  • 打赏
  • 举报
回复
double中float相比,好处是(1)精度高,(2)范围大;坏处是:占地方多。
晨星 2006-07-03
  • 打赏
  • 举报
回复
因为double精度高。

64,678

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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