(int)(1.15*100)等于几?

Hero3003 2014-02-10 06:32:23
int ia = (int)(1.15*100)
int ib = (int)(1.15000*100.0)

运行下来ia = ib = 114
这是为何?
...全文
341 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpcads 2014-02-11
  • 打赏
  • 举报
回复
引用 13 楼 truelance 的回复:
int ia = (int)(1.15*100 + 0.5) int ib = (int)(1.15000*100.0 + 0.5)
好方法。
熊熊大叔 2014-02-11
  • 打赏
  • 举报
回复
int ia = (int)(1.15*100 + 0.5) int ib = (int)(1.15000*100.0 + 0.5)
欧阳春晖 2014-02-11
  • 打赏
  • 举报
回复
引用 10 楼 zhao4zhong1 的回复:
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗? 不要写连自己也预测不了结果的代码!
赵老师又copy?
欧阳春晖 2014-02-11
  • 打赏
  • 举报
回复
ia==150,ib==150
赵4老师 2014-02-11
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗? 不要写连自己也预测不了结果的代码!
赵4老师 2014-02-11
  • 打赏
  • 举报
回复
rach09 2014-02-10
  • 打赏
  • 举报
回复
引用 6 楼 menzi11 的回复:
"1.15"是double类型浮点数,规格化double类型浮点数表示不了"1.15"只能表示 "1.149999999...",所以,明白了吧
也可能是1.150...01
自信男孩 2014-02-10
  • 打赏
  • 举报
回复
引用 6 楼 menzi11 的回复:
"1.15"是double类型浮点数,规格化double类型浮点数表示不了"1.15"只能表示 "1.149999999...",所以,明白了吧
++ 有点意思!
menzi11 2014-02-10
  • 打赏
  • 举报
回复
"1.15"是double类型浮点数,规格化double类型浮点数表示不了"1.15"只能表示 "1.149999999...",所以,明白了吧
u012723504 2014-02-10
  • 打赏
  • 举报
回复
用float数据类型
arthurzhuyong 2014-02-10
  • 打赏
  • 举报
回复
"float" type is totally different with "int" type.
百曉生 2014-02-10
  • 打赏
  • 举报
回复
这应该是类型强制转换导致的错误,可能是因为直接对数据进行强制转换时,改变了数据在内存中的存储格式,最终导致错误,再具体的我就不清楚了。你把等号右边的(int)去掉就不会出错了
bravery36 2014-02-10
  • 打赏
  • 举报
回复
浮点数本来就不一定有足够的精度,这个有什么好奇怪的。另外,有浮点数的运算中int都变成浮点了。
SKATE11 2014-02-10
  • 打赏
  • 举报
回复
bug......

65,189

社区成员

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

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