iOS 小数点精度问题处理
2024-10-21 03:33:16
实际开发中有时候经常会需要去处理小数点精度问题,如果是整数保留整数,如果有小数则保留不为0的的小数,最大2位小数
eg:
2.013 ---> 2.01
2.0 ---> 2
2.10 ---> 2.1
2.149 ---> 2.15
2.00000000009 ---> 2 (丢失精度的情况经常会遇到)
如果像以上情况,末尾为0则直接显示整数,如果不为0,则显示有效位小数,最大显示2位
这里的解决方法是利用fmodf对1取余的方式每次可以获取到小数位
eg:
1.0%1 = 0
1.10%1 = 0.1
1.00000009%1 = 0.00000009
综合上面的例子我们可以总结出下面的一个方法,只需要将小数传入即可获取到符合规范的小数位
- (NSString *)formatFloat:(float)f{
if (fmodf(f, 1)==0) { //无有效小数位
return [NSString stringWithFormat:@"%.0f",f];
} else if (fmodf(f*10, 1)==0) {//如果有一位小数点
return [NSString stringWithFormat:@"%.1f",f];
} else {//如果有两位或以上小数点
return [NSString stringWithFormat:@"%.2f",f];
}
}
需要主要的是iOS中的[NSString stringWithFormat:@"%.1f",f]这种方式取得的小数是四舍五入的小数,并且是向上取整的,如果需要向下取整则可以floor()方法来实现
最新文章
- JavaScript中的数组遍历forEach()与map()方法以及兼容写法
- react-native 学习
- JavaScript中关于bool类型判断的一些总结。
- $(function(){})与 (function(){})() (function($){})() 的区别
- 李洪强iOS开发支付集成之支付宝支付
- [T-SQL]从变量与数据类型说起
- 流形学习(manifold learning)的一些综述
- Poj 3368 Frequent values
- MongoDB初探系列之二:认识MongoDB提供的一些经常使用工具
- 字符串---分割成数组(str_split ),算出一个字符串中出现最多的字符, 学校中最多的姓名
- JavaScript基础1——基本概念
- spring boot RESTFul API拦截 以及Filter和interceptor 、Aspect区别
- 文件访问时间简记(Modify time 和 Change time)
- 关于使用jquery对input中type为radio的标签checked属性的增加与移除
- 内核第三讲,进入ring0,以及编写第一个内核驱动程序.
- Linux查看压缩文件内容【转】
- Hadoop+HBase 集群搭建
- pandas的to_csv()使用方法
- Win8下IIS的安装和站点的公布
- file.replace