首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >和浮点数c++

和浮点数c++
EN

Stack Overflow用户
提问于 2012-11-07 16:51:20
回答 3查看 3.9K关注 0票数 1

可能重复: 浮点表示错误?

我对这段代码有问题

代码语言:javascript
复制
int cent;
int dollar ;
float cnt2dlr;
 //convert cnt to doloar ;
cnt2dlr=(cnt)/(100);

问题是当cnt = 175cnt2dlr = 0.17,444444,而不是0.17,5

有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-07 16:53:25

浮点数不是精确的表示形式。它们是近似的,所以你不能保证很高的精度。读取关于浮点算法,每个计算机科学家应该知道什么?

要提高数字的精度,请考虑使用64位double而不是32位float

票数 1
EN

Stack Overflow用户

发布于 2012-11-07 16:52:37

浮点数字往往不精确。你对此无能为力。

您的代码很好地说明了为什么不应该在涉及货币的计算中使用浮点数。仅仅因为货币值有小数点,而不是使货币成为浮点数。浮点数应该用于无穷小变化的量,如温度或速度,而不是象货币一样,以块状变化的量。

票数 7
EN

Stack Overflow用户

发布于 2012-11-07 17:08:11

我有点困惑。如果你指的是(分)而不是(cnt),那么

代码语言:javascript
复制
cnt2dlr=(cent)/(1000);

(注意e在百分比中)是int / int除法,175 / 1000应该返回int 0。

如果你这样做,你会得到同样的结果吗?

代码语言:javascript
复制
cnt2dlr=(cent)/(1000.0);

注意小数点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13274372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档