zoukankan      html  css  js  c++  java
  • iOS 当请求到的数据是double类型,会失去精准度,并且去掉小数点后的0

    首先请求到的数据都会变成字符串,先将字符串转化为double类型

    double fdouble = [str doubleValue];

    然后再设置小数点后的位数

    [NSString stringWithFormat:@"%.1f", fdouble];

     重点:  提供一个NSSing的扩展,传入需要保留的小数位,返回字符串。并且去掉末尾的0.

    #import <Foundation/Foundation.h>
    
    @interface NSString (EliminateZero)
    
    //   integer  必传
    - (NSString *)eliminateZeroWithDouble:(NSInteger)integer;
    
    @end
    
    
    
    #import "NSString+EliminateZero.h"
    
    @implementation NSString (EliminateZero)
    
    - (NSString *)eliminateZeroWithDouble:(NSInteger)integer{
        
        NSString *str = [self copy];
        
        double fdouble = [str doubleValue];
        
        NSString *ftotal;
        switch (integer) {
            case 1:
                ftotal = [NSString stringWithFormat:@"%.1f", fdouble];
                break;
            case 2:
                ftotal = [NSString stringWithFormat:@"%.2f", fdouble];
                break;
            case 3:
                ftotal = [NSString stringWithFormat:@"%.3f", fdouble];
                break;
            case 4:
                ftotal = [NSString stringWithFormat:@"%.4f", fdouble];
                break;
            case 5:
                ftotal = [NSString stringWithFormat:@"%.5f", fdouble];
                break;
            default:
                break;
        }
    
        while ([ftotal hasSuffix:@"0"]) {
            ftotal = [ftotal substringToIndex:[ftotal length]-1];
        }
        
        if ([ftotal hasSuffix:@"."]) {
            ftotal = [ftotal substringToIndex:[ftotal length]-1];
        }
        
        return ftotal;
        
    }
    
    
    @end

     

     

     

  • 相关阅读:
    SHELL
    终端如何输出彩色字体
    BTree和B+Tree详解
    博客项目----小功能模块
    python的学习之旅---Mysql数据库
    Python的学习之旅———协程
    python的学习之旅---信号量 定时器
    python的学习之旅---回调机制
    Python的学习之旅———线程 事件
    centos安装redis
  • 原文地址:https://www.cnblogs.com/weipeng168/p/6203531.html
Copyright © 2011-2022 走看看