博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios 涉及到支付金额计算的相关总结
阅读量:5030 次
发布时间:2019-06-12

本文共 3250 字,大约阅读时间需要 10 分钟。

1.支付服务端统一传的类型是 NSString

2.本地存的类型是 double

3.涉及到 乘法和除法使用

//两个double相乘- (double)numberMeetWith:(double)num1 andNum:(double)num2 {    NSDecimalNumberHandler *handler = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundBankers                                                                                             scale:2                                                                                  raiseOnExactness:NO                                                                                   raiseOnOverflow:NO                                                                                  raiseOnUnderflow:NO                                                                               raiseOnDivideByZero:YES];    NSDecimalNumber *dec1 = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f",num1]];    NSDecimalNumber *dec2 = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f",num2]];    NSDecimalNumber *multiplyResult = [dec1 decimalNumberByMultiplyingBy:dec2                                                            withBehavior:handler];    return [multiplyResult doubleValue];}//两个double相除- (double)numberDivisionWith:(double)num1 andNum:(double)num2 {    NSDecimalNumberHandler *handler = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundBankers                                                                                             scale:2                                                                                  raiseOnExactness:NO                                                                                   raiseOnOverflow:NO                                                                                  raiseOnUnderflow:NO                                                                               raiseOnDivideByZero:YES];    NSDecimalNumber *dec1 = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f",num1]];    NSDecimalNumber *dec2 = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f",num2]];    NSDecimalNumber *multiplyResult = [dec1 decimalNumberByDividingBy:dec2                                                            withBehavior:handler];    return [multiplyResult doubleValue];}

4.double去零

- (NSString *)stringDisposeWithFloat:(double)floatValue{    NSString *str = [NSString stringWithFormat:@"%f",floatValue];    long len = str.length;    for (int i = 0; i < len; i++)    {        if (![str  hasSuffix:@"0"])            break;        else            str = [str substringToIndex:[str length]-1];    }    if ([str hasSuffix:@"."])//避免像2.0000这样的被解析成2.    {        //s.substring(0, len - i - 1);        return [str substringToIndex:[str length]-1];    }    else    {        return str;    }}

5.使用示例

AppDelegate *app = (AppDelegate*)[[UIApplication sharedApplication] delegate];double iphoneDayPrice = [self numberMeetWith:app.QZBIphoneOutTimeDayPrice andNum:[ordModel.outTimeDay doubleValue]];double needAllMoney = iphoneDayPrice + [ordModel.repurchaseAmount doubleValue] - [self.orderDetailModel.repurchaseOffsetAmount doubleValue];//转成NSString[self stringDisposeWithFloat:app.QZBIphoneOutTimeDayPrice]

 

转载于:https://www.cnblogs.com/qiyiyifan/p/9155756.html

你可能感兴趣的文章
用php做一个简单的注册用户功能
查看>>
一款基于css3的3D图片翻页切换特效
查看>>
Feign使用Hystrix无效原因及解决方法
查看>>
Sizeof与Strlen的区别与联系
查看>>
hadoop2.2.0_hbase0.96_zookeeper3.4.5全分布式安装文档下载
查看>>
Flutter 贝塞尔曲线切割
查看>>
golang 的编译安装以及supervisord部署
查看>>
阿里架构师,讲述基于微服务的软件架构模式
查看>>
Eclipse导入maven项目时,Pom.xml文件报错处理方法
查看>>
01、JAVA开发准备
查看>>
asp.net mvc 错误处理 - 自定义报错处理,生成错误日志
查看>>
[转]jQuery 选择器和dom操作
查看>>
Jenkins+Maven+SVN快速搭建持续集成环境(转)
查看>>
杜教筛
查看>>
《Ext JS模板与组件基本知识框架图----模板》
查看>>
txmpp
查看>>
【Github教程】史上最全github使用方法:github入门到精通
查看>>
抽象工厂模式(Abstract Factory)
查看>>
luogu1373 小a和uim之大逃离 (dp)
查看>>
Redis的Pub/Sub客户端实现
查看>>