本文主要是介绍CGFloat转NSString保持原有的精度,末尾不添加0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题阐述:
我们进行CGFloat转NSString可能会遇到一个问题
例如有一个CGFloat的值为2.1,转化成NSString后显示2.1000...
解决办法:
方法一:
如何解决呢,可以使用%g格式符,可以保证传入的不管是2还是2.1都能保持原有的精度
%g格式符可以根据数值的大小自动选择最合适的表示方法,同时避免多余的小数位数。这将确保输入的 2.1 在转换后输出仍然是 2.1。
CGFloat myFloat = 2.1;
NSString *myString = [NSString stringWithFormat:@"%g", myFloat];
NSLog(@"%@", myString); // 输出: 2.1
方法二:
我们也可以使用一个自定义一个方法来实现
- (NSString *)stringFromCGFloat:(CGFloat)floatValue {// 将 CGFloat 转换为字符串NSString *floatString = [NSString stringWithFormat:@"%g", floatValue];// 查找小数点的位置NSRange dotRange = [floatString rangeOfString:@"."];// 如果有小数点,则返回完整的字符串if (dotRange.location != NSNotFound) {return floatString;}// 如果没有小数点,则返回整数部分的字符串return [NSString stringWithFormat:@"%.0f", floatValue];
}
这篇关于CGFloat转NSString保持原有的精度,末尾不添加0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!