在 UILabel 中显示浮点数

Posted

技术标签:

【中文标题】在 UILabel 中显示浮点数【英文标题】:Display Float In 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”。我已经尝试了我所知道的一切,但它不起作用。我知道这是一个愚蠢的错误,但我想不通。

节日快乐。 :)

【问题讨论】:

【参考方案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 / 20floatNum = 10 / 20.0floatNum = 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];

【讨论】:

以上是关于在 UILabel 中显示浮点数的主要内容,如果未能解决你的问题,请参考以下文章

组态王使用485如何读取仪表浮点数?

点后 3 位浮点数

MySQL浮点数和定点数

C51单片机浮点数运算

js 后端返回浮点数,前端用乘法或者除法处理,得到超常值

android中TextView能直接显示整数或浮点数吗?