如何在NSNumber上做数学

sdk*_*bie 8 iphone cocoa objective-c nsnumber ios

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

这是我的代码:

NSNumber *reading = [some value];
reading = [reading floatValue] * 100;
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢你的帮助

Ano*_*dya 35

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

如:

NSNumber *reading = @(10.123);
reading = @([reading floatValue] * 100);
Run Code Online (Sandbox Code Playgroud)

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

NSString *display=[NSString stringWithFormat:@"%@%%",reading];
Run Code Online (Sandbox Code Playgroud)

注意%%双倍百分比符号

  • @Devfly:要将结果显示为:75%,请检查问题.一个%将不会显示,因此使用两个. (2认同)

Apu*_*urv 7

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

NSNumber *reading = [NSNumber numberWithFloat:someValue];
float newNum = [reading floatValue] * 100;
reading = [NSNumber numberWithFloat:newNum];
Run Code Online (Sandbox Code Playgroud)