【问题标题】:Confused with floats and ints对浮点数和整数感到困惑
【发布时间】:2011-04-17 18:41:24
【问题描述】:

他们不是最好的朋友。

我有这个:

int svNumberOfObjects = 9;

还有这个:

int svColumns = 4;

然后还有这个:

float numberOfRows = svNumberOfObjects/svColumns;

结果如下:

2.000000

如何让它显示实际的浮点值?

【问题讨论】:

  • 问题是两个整数被整数除法相除。通常在 C/C++ 中,我们通过将其中一个整数转换为浮点数来解决这个问题。我不知道任何用于转换的 Obj-C 语法,所以我不会回答。
  • @ProdigySim:Objective-C 与 C 相同,除了不同之处 =)。具体来说,所有 C 代码都是有效的 Objective-C,因此两种语言中的显式转换完全相同。
  • @ProdigySim:与 C++ 一样,Objective-C 最初是一组 C 宏。它仍然有 C 作为子集,就像 C++。
  • @Stephen Canon:很高兴知道,谢谢。

标签: iphone objective-c floating-point int


【解决方案1】:
float numberOfRows = (float)svNumberOfObjects/svColumns;

您的代码目前使用 integer 除法,它将结果截断为整数。您需要浮点除法,这意味着您需要其中一个操作数是浮点值;显式转换完成了这一点。

【讨论】:

    【解决方案2】:
    float numberOfRows = (float)svNumberOfObjects/svColumns;
    

    【讨论】:

      【解决方案3】:

      你也可以试试

      float numberOfRows = 1.0*svNumberOfObjects/svColumns;
      

      【讨论】:

      • 让我第一个说,euww!演员阵容要好得多。
      • 我不认为它很漂亮,但它始终是一种选择。就像 gotos 一样:尽管它通常不被鼓励,但每本关于 C 的书都会提到它;)
      猜你喜欢
      • 2013-12-27
      • 2021-11-28
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      相关资源
      最近更新 更多