開發(fā)中常遇到浮點轉字符串,然而不是所有情況都需要保留固定的小數(shù)位數(shù),有時候為了視覺統(tǒng)一,我們需要把小數(shù)點后無效的0去除。常規(guī)的處理方法是轉為NSNumber,但是依然會有精度丟失的情況,最優(yōu)的方案是使用精準度更高的NSDecimalNumber來處理,可以有效避免精度丟失,又能保證去除多余的0:
NSString*testNum = @"0.07000";
// 常規(guī)轉NSNumber方式
NSString*normalString = [NSString stringWithFormat:@"%@", @([testNum doubleValue])];
// NSDecimalNumber 方式
NSDecimalNumber*numDecimal = [NSDecimalNumber decimalNumberWithString: testNum];
NSString*numString = [NSString stringWithFormat:@"%@", numDecimal];
NSLog(@"normalString去零后 :%@\n numString去零后 :%@\n ", normalString, numString);
輸出效果對比:

image.png