iOS 开发中保留小数问题

保留两位小数(四舍五入)



- (void)viewDidLoad {
    [super viewDidLoad];
 
    // 有时候我们需要对数据保留两位小数,而且需要四舍五入,并且需要把末尾多余的0给去掉\
    下面提供两种方法来处理,推荐方法一,简单方便
    
    NSLog(@"SuperNSLog--- %@",[self formatValue:23.50]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:23.00]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:23.23]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:23.4545]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:101.0002]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:2.305]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:2.304]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:5.746]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:-5.746]);
    NSLog(@"SuperNSLog--- %@",[self formatValue:-5.744]);

    
}

// 方法一
- (NSNumber *)formatValue:(CGFloat)value {
    
    return  @([NSString stringWithFormat:@"%.2f", value].floatValue);
}

// 方法二
//- (NSString *)formatValue:(float)value {
//    
//    NSString *str = [NSString stringWithFormat:@"%.2f",value];
//    
//    if ((NSInteger)(str.floatValue * 100) % 100 == 0) {
//        
//        return [NSString stringWithFormat:@"%.0f",value];
//        
//    }else if ((NSInteger)(str.floatValue * 100) % 10 == 0) {
//        
//        return [NSString stringWithFormat:@"%.1f",value];
//        
//    }else {
//        
//        return str;
//    }
//    
//}

运行结果


2017-02-28 17:46:49.313 1[18429:91975] SuperNSLog--- 23.5
2017-02-28 17:46:49.314 1[18429:91975] SuperNSLog--- 23
2017-02-28 17:46:49.314 1[18429:91975] SuperNSLog--- 23.23
2017-02-28 17:46:49.314 1[18429:91975] SuperNSLog--- 23.45
2017-02-28 17:46:49.315 1[18429:91975] SuperNSLog--- 101
2017-02-28 17:46:49.315 1[18429:91975] SuperNSLog--- 2.31
2017-02-28 17:46:49.315 1[18429:91975] SuperNSLog--- 2.3
2017-02-28 17:46:49.316 1[18429:91975] SuperNSLog--- 5.75
2017-02-28 17:46:49.316 1[18429:91975] SuperNSLog--- -5.75
2017-02-28 17:46:49.316 1[18429:91975] SuperNSLog--- -5.74
posted @   superxjhw  阅读(1978)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示