我試圖從傳感器讀取數據並將其顯示爲百分比。 [某個值]將始終爲0和1之間如何在NSNumber上進行數學運算
這裏是我的代碼:
NSNumber *reading = [some value];
reading = [reading floatValue] * 100;
不過,我得到「分配到的NSNumber *從兼容型浮球_strong」
我是新工作NSNumber對象,並努力瞭解如何顯示我的傳感器讀數爲用戶的百分比。例如:75%
感謝所有幫助
我試圖從傳感器讀取數據並將其顯示爲百分比。 [某個值]將始終爲0和1之間如何在NSNumber上進行數學運算
這裏是我的代碼:
NSNumber *reading = [some value];
reading = [reading floatValue] * 100;
不過,我得到「分配到的NSNumber *從兼容型浮球_strong」
我是新工作NSNumber對象,並努力瞭解如何顯示我的傳感器讀數爲用戶的百分比。例如:75%
感謝所有幫助
你需要整框或浮動值,將其存儲在的NSNumber,
爲:
NSNumber *reading = @(10.123);
reading = @([reading floatValue] * 100);
在此之後,你可以打印/將其轉換爲字符串爲:
NSString *display=[NSString stringWithFormat:@"%@%%",reading];
注意%%雙倍e百分比符號
您應該首先保持浮動值,並且需要從中創建NSNumber。
NSNumber *reading = [NSNumber numberWithFloat:someValue];
float newNum = [reading floatValue] * 100;
reading = [NSNumber numberWithFloat:newNum];
爲什麼你會把'someValue'放在下一行再次取消裝箱值?只需在乘法表達式中使用'someValue'。 – 2013-03-16 09:58:56
我不喜歡寫多行代碼,因爲我對多行代碼編寫有點懶。我一直在尋找壓縮解決方案。請在下面找到以下解決方案。
float testValue=5.00032;
NSString *resultValue=[NSString stringWithFormat:@"%@%%",[NSNumber numberWithFloat:(testValue*100)]];
上面的解決方案是浮點值。如果你想提供輸入作爲整數值,請將「numberWithFloat」替換爲「numberWithInt」。
我希望這個解決方案能幫助你。謝謝。
是否有一個特別的原因你使用NSNumber對象?除了在編寫和閱讀plists或JSON等內容時,或者在處理Core Data或Core Image時,通常不需要它們。我傾向於保持「浮動」或「雙倍」,只有在我需要裝盒時纔將它們裝箱。 – 2013-03-16 09:58:24