在我当前的应用程序中,我有一个通常可以求解大量十进制数的方程式,即: 0.12345 或 .123 。但是我需要这个工作的方式是只显示 1 或 2 个十进制数字,因此根据我提到的值基本上会产生 0.12 或 0.1。
为了做到这一点,我做了以下事情: 把我的 CGFloat 放到一个 NSString 上:
CGFloat eX1 = 0.12345
NSLog(@" eX1 = %f", eX1); //This of course , prints out 0.12345
NSNumberFormatter *XFormatter = [[NSNumberFormatter alloc] init];
Xformatter.numberStyle=NSNumberFormatterDecimalStyle;
Xformatter.maximumFractionDigits=1;
NSString *eX1F = [formatter stringFromNumber:@(eX1)];
NSLog (@"eX1F = %@",eX1F); //This prints out 0.1
但我的问题是我需要在格式化后继续将其作为 CGFloat 使用,我尝试通过执行将字符串恢复为数字:numberFromString
但问题是它仅适用于NSNumber
.
我可以做些什么来格式化 myCGFloat
并继续使用它作为 aCGFloat
而不是 a NSString
or NSNumber
?
更新我试过:
float backToFloat = [myNumber floatValue];
但结果是未格式化的数字:0.10000
我需要那些额外的 0