【问题标题】:Display Float In UILabel在 UILabel 中显示浮点数
【发布时间】:2011-12-25 23:09:29
【问题描述】:

我在 UILabel 中使用浮点数时遇到问题。

float doubleNum;

floatNum = 10 / 20;

cashLabel.text = [[NSString alloc] initWithFormat:@"%f", floatNum];

如果我使用“floatNum = 10 / 10;”它正确返回“1.000000000”,但是,如果我输入“floatNum = 10 / 20”,它会返回“0.0000000”。我已经尝试了我所知道的一切,但它不起作用。我知道这是一个愚蠢的错误,但我想不通。

节日快乐。 :)

【问题讨论】:

    标签: iphone objective-c ios cocoa-touch cocoa


    【解决方案1】:

    您需要将其中一个整数转换为浮点数。

    尝试将分割线替换为:

    float floatNum = (float) 10 / 20;
    

    你应该得到正确的答案。

    或者如果可能的话,在你的部门中使用浮点数:

    float floatNum = 10.0f / 20.0f;
    

    应该也可以

    【讨论】:

      【解决方案2】:

      这里的问题是您将一个 INTEGER 除以另一个 INTEGER 的结果分配给 floatNum。 10 / 20 的结果确实为 0,作为浮点数,它显示为 0.0000000。为了获得正确的结果,您需要使用强制转换类型将其转换为浮点数或将 .0 添加到其中一个数字。在除法中,如果其中一个数字是浮点数(只需将 .0 添加到其中一个即可轻松完成),结果也将是浮点数。

      【讨论】:

        【解决方案3】:

        通常,C 执行“整数除法”(基本上,没有余数的除法 - 10/3 是 3R1,所以它产生 3)。
        当您输入 floatNum = 10/20 时,它会输入 10/20 = 0(余数 10)。
        要解决此问题,您必须告诉程序您要为其提供浮点数。尝试使用:
        floatNum = 10.0 / 20
        floatNum = 10 / 20.0
        floatNum = float (10 / 20)
        所有这些都应该有效。

        【讨论】:

        • 非常感谢!我什至没有想到这一点。我认为它会自动执行此操作。再次感谢您!
        【解决方案4】:

        尝试floatNum = 10.0f/20.0f(即确保使用浮点数而不是整数进行计算)

        【讨论】:

          【解决方案5】:

          考虑以下示例以了解浮动的工作原理:

          float a = 1/120;
          float b = 1.0/120;
          float c = 1.0/120.0;
          float d = 1.0f/120.0f;
          
          NSLog(@"Value of A:%f B:%f C:%f D:%f",a,b,c,d);
          
          Output: Value of A:0.000000 B:0.008333 C:0.008333 D:0.008333
          

          对于 float 变量 a : int / int 产生整数,您将其分配给 float 并打印为 0.0000000

          对于float变量b:float / int产生float,赋值给float并打印0.008333

          对于浮点变量 c:float / float 产生浮点数,所以 0.008333

          最后一个是更精确的浮动。以前的都是 double 类型:所有浮点值都存储为 double 数据类型,除非该值后面跟着一个 'f' 来明确指定一个浮点数而不是双精度数。

          将您的代码更改为:

          float floatNum;
          
          floatNum = 10.0f / 20.0f;
          
          cashLabel.text = [[NSString alloc] initWithFormat:@"%f", floatNum];
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-02-15
            • 1970-01-01
            • 1970-01-01
            • 2017-04-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多