将浮点数转换为整数
Posted
技术标签:
【中文标题】将浮点数转换为整数【英文标题】:Converting a float to int 【发布时间】:2011-08-15 22:28:53 【问题描述】:我有这个任务,你必须从用户那里得到一个浮点类型的输入,它代表一个以美元为单位的价值 例如
4.05
所以我想将此浮点数转换为 int,使其以美分为单位,因此 int 的值应为 405,我需要在 C 中执行此操作,任何人都可以提供一些帮助吗?
【问题讨论】:
多少美分是 4.05 美元? 对不起@dlev,我的错,我没有注意到,也从来不知道这件事。只希望我及时删除它。 @sidyll:如果您发布了解决方案,是的,您做到了。 ;-) 【参考方案1】:由于这是家庭作业,这里有一些引导性问题:
-
您需要将美元数字更改为美分。什么数学运算可以做到这一点?
您需要将该数学运算的结果转换为整数。如何将浮点数转换为整数? (提示:铸造)
【讨论】:
选角会让他一分钱一分货。我想这就是家庭作业的内容。 (提示:四舍五入)【参考方案2】:谷歌上的第一个结果是“float to int c”:http://www.cs.tut.fi/~jkorpela/round.html。下次请谷歌!
【讨论】:
这会截断浮点数之后的内容 -_- ,这正是我不想做的事情 @aedes993 我认为他假设您知道如何在转换为 int 之前将美元转换为美分。假设太高了? @aedes993 因为这是作业,没有人会回答;您必须先通过简单的数学将美元转换为美分,然后再进行转换【参考方案3】:这对您的问题来说是偶然的,但如果您决定在您的编程生涯中走得更远,并且想要编写一些涉及非整数值的代码,那么使用某种 decimal floating point 库是最安全的以避免精度错误。
这适用于 Python,但解释了在货币中使用正确的十进制数字的基本原理:
http://docs.python.org/library/decimal.html
在这个作业中,如果没有它你可能会很好,但使用它和/或在课堂上提出它可能会在你的老师那里赢得一些额外的学分。 ;)
【讨论】:
以上是关于将浮点数转换为整数的主要内容,如果未能解决你的问题,请参考以下文章
使用 iPhone 的 SIMD 浮点单元将浮点数转换为整数
输入类型=数字:当点后有 3 位数字时,Firefox 将浮点数转换为整数