在UILabel中显示Float

时间:2011-12-25 23:09:30

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

我在使用UILabel中的浮动时遇到问题。

float doubleNum;

floatNum = 10 / 20;

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

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

节日快乐。 :)

5 个答案:

答案 0 :(得分:4)

你需要将一个整数转换为浮点数。

尝试用以下代码替换分区线:

float floatNum = (float) 10 / 20;

你应该得到正确答案。

或者,如果可能的话,只需在你的部门中使用花车:

float floatNum = 10.0f / 20.0f;

也应该有用

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

请考虑以下示例来了解浮点数的工作原理:

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

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

最后一个更精确浮动。以前的类型是double类型:所有浮点值都存储为double数据类型,除非值后跟'f'以专门指定float而不是double。

将您的代码更改为:

float floatNum;

floatNum = 10.0f / 20.0f;

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