关于iphone:如何在NSNumber上做数学

How to do math on NSNumber

我试图读取传感器并将其显示为百分比。 [某些值]将始终介于0和1之间。

这是我的代码:

1
2
NSNumber *reading = [some value];
reading = [reading floatValue] * 100;

但是,我得到"从不兼容的类型float分配给NSNumber * _strong"

我是新工作的NSNumber对象,并且很难理解如何以用户的百分比显示我的传感器读数。 例如:75%

谢谢你的帮助


你需要使用整数或浮点值来存储它在NSNumber中,

如:

1
2
NSNumber *reading = @(10.123);
reading = @([reading floatValue] * 100);

在此之后,您可以将其打印/转换为字符串:

1
NSString *display=[NSString stringWithFormat:@"%@%%",reading];

注意%%双倍百分比符号


您应该首先将值保留在float中,并且需要从中创建NSNumber。

1
2
3
NSNumber *reading = [NSNumber numberWithFloat:someValue];
float newNum = [reading floatValue] * 100;
reading = [NSNumber numberWithFloat:newNum];


我不喜欢写多行代码,因为我对多行代码编写有点懒惰。 我一直在寻找压缩解决方案。 请在下面找到以下解决方案。

1
2
 float testValue=5.00032;
    NSString *resultValue=[NSString stringWithFormat:@"%@%%",[NSNumber numberWithFloat:(testValue*100)]];

以上解决方案是浮动值。 如果要将输入作为整数值提供,请将"numberWithFloat"替换为"numberWithInt"。

我希望这个解决方案能帮到你。 谢谢。