在我目前的应用程序中,我有一个通常可以解决相当长的十进制数的方程,即:0.12345或.123。但我需要这个工作的方式是只显示1或2个小数,所以基本上根据我提到的数值产生0.12或0.1。如何从NSString获取CGFloat?
为了做到这一点,我也做了以下内容:把我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
。
我能做些什么来格式化我的CGFloat
并继续使用它作为CGFloat
而不是NSString
或NSNumber
?
更新我曾尝试:
float backToFloat = [myNumber floatValue];
但结果是数未格式化:0.10000
我需要这些额外的0出
float/CGFloat值没有“格式”。它是一个纯数字值,任何“格式”都是通过显示它来施加的。 –