iOS 当请求到的数据是double类型,会失去精准度,并且去掉小数点后的0

摘要:
首先,请求的数据将变成字符串。首先,将字符串转换为double-type double=[strdoubleValue];然后设置小数点后的位数[NSStringStringWithFormat:@“%.1f”,fdouble];重要提示:提供NSSing的扩展名,传入要保留的小数位数,然后返回字符串。然后删除0.#import 末尾的@interf

首先请求到的数据都会变成字符串,先将字符串转化为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

 

 

 

免责声明:文章转载自《iOS 当请求到的数据是double类型,会失去精准度,并且去掉小数点后的0》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【微信小程序】menuNode.js的进程与子进程:从文档到实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS NSDictionary 转Json 去掉换行去掉空格

//dic 转json 如果用系统自带的会出现空格。 + (NSString *)returnJSONStringWithDictionary:(NSDictionary *)dictionary{ //系统自带 // NSError * error; // NSData *...

转载:ORA-01438: 值大于为此列指定的允许精度

  Number的数据声明如下: 表示        作用        说明Number(p, s)        声明一个定点数        p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,Number(p)        声明一个整数        相当于Number(p, 0)Number      ...

iOS KVC 键值编码

1 什么是键值编码 键值编码,key value coding, 简称KVC KVC, 通过字符串间接的获取、改变对象的状态。 2 KVC的基本使用 通过字符串获取对象的状态 接口 oc对象的实例方法:- (id)valueForKey:(NSString *)key; 实例 找name属性或者name方法 如果找不到,就找name和_na...

iOS: 实现微信支付

一、介绍: 现在的消费越来越方便,直接带个手机用各种三方的支付平台进行支付就行,例如微信、支付宝。现在正好我所做的项目中用到了微信支付,今天就来整理一下。 二、准备: 1、去微信官方开发者平台注册开发者账号:https://open.weixin.qq.com 2、然后登陆开发平台: 3、给项目对应的Bundle ID创建应用程序(默认有登陆和分享功能,...

IOS ——OC——NSMutableString的用法大全(个人总结)

"NSString *"这个数据类型代表一个NSString对象的指针,不是NSString对象本身。 "NSMutableString *"这个数据类型则是代表"NSMutableString"对象本身,这两者是有区别的。   这也是有的时候我们使用NSMutableString类型字符串时,要使用copy的原因,因为可能不想改变新的字符串时影...

[转]NSString/NSMutableString字符串处理和常用代码 (实例)

Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。  NSString 常用方法总结 +(id)str...