NSNumber 转 NSString 直接转换导致的精度问题

2020-12-14  本文已影响0人  乡下秋草
    NSNumber *number =@64.4;
    
    double d            = [number doubleValue];

    
    // 直接转换 NSNumber->NSString
    NSString *text1 = [number stringValue];
    
    // NSNumber-> Double ->NSString ->NSDecimalNumber ->NSString
    NSString *dStr      = [NSString stringWithFormat:@"%f", d];
    NSDecimalNumber *dn =[NSDecimalNumber decimalNumberWithString:dStr];
    NSString *text2 = [dn stringValue];
    
    // NSNumber-> Double ->NSString
    NSString *text3 = [NSString stringWithFormat:@"%f", d];

    NSLog(@"text1 ==== %@  text2 ===== %@  text3 ===== %@",text1,text2,text3);

输出

2020-12-14 19:36:57.614561+0800 DelegateDemo[13970:359440] 
text1 ==== 64.40000000000001  text2 ===== 64.4  text3 ===== 64.400000
上一篇 下一篇

猜你喜欢

热点阅读