文档章节

货币计算

S
 Snaiper
发布于 2016/02/17 18:08
字数 277
阅读 25
收藏 0

   NSDecimalNumber *userNum = [NSDecimalNumber decimalNumberWithString:@"0.1"];

            

            NSDecimalNumber *userMoney = [multiplierAll decimalNumberByMultiplyingBy:userNum];//优惠金额

            NSString *v1 = [userMoney stringValue];

            

            NSDecimalNumber *shengpai = [multiplierAll decimalNumberBySubtracting:userMoney];// 总额 - 优惠

            NSString *a1 = [shengpai stringValue];

            

            NSDecimalNumber *shengyou = [multiplicandSpecial decimalNumberBySubtracting:userMoney];

            NSString *s1 = [shengyou stringValue];

货币计算 最好用NSDecimalNumber进行科学计数

总的来说,对于货币计算,应该需要注意精度的问题。同时在运算的时候,应该优先选用框架提供的API,否则,就应该使用足够精度的类型运算,同时对自己写的接口进行足够的说明,要求开发者按照规范来使用。

在自己不能保证足够准确的情况下,用适当的说明的要求来规避责任还是可以接受的。至少被人抱怨两句总比出错强。

iOS开发中,和货币价格计算相关的,需要注意计算精度的问题。即使只是两位小数,也会出现误差。使用float类型运算,是完全不够的。经过一番测试,最后选择使用系统提供的APINSDecimalNumber来进行更好的解决。

© 著作权归作者所有

S
粉丝 13
博文 100
码字总数 135194
作品 0
深圳
私信 提问
比特币的货币单位:“枚”阻碍加密货币称雄世界

今天我们已经习惯于用元、角、分作为货币的计量单位,比如一港元,一美元。中国古代社会常用两、文、铢、吊、贯、斤等作为货币计算单位。那么加密货币到底该用何种货币计算单位? 一、货币计...

区势传媒
2018/08/07
0
0
量子支票--淘汰比特币们的新技术

量子科学正在取得新的进展,其中之一就是在理论上证实这项技术可以被用于支付。 来自的印度科学研究院的科学家Prasanta Panigrahi带领他的团队对此展开研究,证明量子计算机在理论上可以创造...

JDquant
2017/07/31
0
0
如何处理JavaScript 中的货币值?

 金钱无处不在。   无论在银行应用程序、电子商务网站还是证券交易所平台,我们每天都在与金钱互动。我们也越来越依赖技术来处理问题。   然而,关于如何以编程处理货币价值尚无共识。虽...

数据星河
2018/11/14
0
0
黄仁勋:区块链将继续存在 希望加密货币成GPU主动力

北京时间3月30日早间消息,尽管由于支持加密货币“挖矿”,芯片制造商英伟达(Nvidia)的股价下挫,但该公司创始人、总裁兼首席执行官黄仁勋(Jensen Huang)并不希望加密热潮迅速退却。日前...

北丐09
2018/04/20
0
0
NVIDIA CEO黄仁勋看好区块链:愿加密货币成GPU主动力

北京时间3月30日早间消息,尽管由于支持加密货币“挖矿”,芯片制造商英伟达(Nvidia)的股价下挫,但该公司创始人、总裁兼首席执行官黄仁勋(Jensen Huang)并不希望加密热潮迅速退却。 日前...

北丐09
2018/04/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

对话亲历者|鲁肃:我在支付宝“拧螺丝“的日子

摘要: 他是支付宝技术平台的奠基人之一,但是他总说“这还不是我心中最完美的架构”;他行事低调但却有着“此时此地,非我莫属”的豪气;他曾无数次充当救火大队长,但自评只是“没有掉队的...

阿里云云栖社区
16分钟前
1
0
设置 npm yarn 淘宝源

设置npm config set chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver设置yarn config set "chromedriver_cdnurl" "https://npm.taobao.org/mirrors/chromedriver"......

internetafei
25分钟前
0
0
Docker搭建Mysql集群、主从同步复制

1、创建数据挂载点: mkdir /opt/mysql-master/mysql、/opt/mysql-master/conf.d、/opt/mysql-slave/mysql、/opt/mysql-slave/conf.d 2、分别在master、slave节点文件目录conf.d下创建touch......

WALK_MAN
48分钟前
10
0
手把手教你做中间件开发(分布式缓存篇)-借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo

本文档配合主要对如下demo进行配合说明: 借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo 0. 手把手教你做中间件、高性能服务器、分布式存储技术交流群 ...

y123456yz
49分钟前
2
0
Spring-boot单元测试(私有方法测试)

Spring-boot的单元测试网上有了很多,当项目是可以使用spring-boot正常运行时,只要在测试类上添加如下配置就使用@Autowired的方式进行单元测试 @RunWith(SpringJUnit4ClassRunner.class)@...

琴兽
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部