将浮点数转换为整数

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

在这个作业中,如果没有它你可能会很好,但使用它和/或在课堂上提出它可能会在你的老师那里赢得一些额外的学分。 ;)

【讨论】:

以上是关于将浮点数转换为整数的主要内容,如果未能解决你的问题,请参考以下文章

C# - 将浮点数转换为整数...并根据余数更改整数

使用 iPhone 的 SIMD 浮点单元将浮点数转换为整数

输入类型=数字:当点后有 3 位数字时,Firefox 将浮点数转换为整数

C将浮点数转换为int

Hive/Bigsql Pandas 将浮点数转换为整数,使用 pyarrow 将空值转换为镶木地板文件

将浮点数与数组中的值进行比较时,“TypeError:只能将整数标量数组转换为标量索引”