【问题标题】:type casting float to int将 float 类型转换为 int
【发布时间】:2015-07-07 20:00:01
【问题描述】:

我使用此代码从用户那里得到一个浮点输入。

1. float change = Getfloat();
2. change *= 100;
3. int remainder = change;

但是,当用户输入 4.2 时,第 2 行将更改变量变为 419.999969,并以 419 结束。 如何更改程序,使其有效地将浮点数更改为 int。

【问题讨论】:

  • hmmm 还有一个浮点数学问题....
  • *100之后调用round
  • @SouravGhosh 我现在试图问同样的问题,但如果我是 FP 新手,SO 并没有向我展示任何可以吸引眼球的东西。并不是说 OP 也进行了过多的研究,但也许 SO 应该显示一些比最近关于 like that 的结果更有用的信息。
  • @user3125367:别担心。您可以向初学者提出问题,这是(在我看来)该网站的用途之一。

标签: c type-conversion


【解决方案1】:

一种方法是四舍五入到最接近的值。简单的版本是

change = (int)(change + 0.5);

(这将在第 2 步和第 3 步之间进行。)它将小于 0.5 的值向下舍入,将大于或等于 0.5 的值向上舍入。

如果您想要四舍五入负数,或者想要四舍五入到最接近的 1 以外的值,可能会有其他复杂情况,但这应该可以帮助您入门。

【讨论】:

  • 有一个库函数可以做到这一点。
  • 这不是解决这个问题的正确方法。
猜你喜欢
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
  • 2019-06-22
相关资源
最近更新 更多