实际开发中有时候经常会需要去处理小数点精度问题,如果是整数保留整数,如果有小数则保留不为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()方法来实现

最新文章

  1. JavaScript中的数组遍历forEach()与map()方法以及兼容写法
  2. react-native 学习
  3. JavaScript中关于bool类型判断的一些总结。
  4. $(function(){})与 (function(){})() (function($){})() 的区别
  5. 李洪强iOS开发支付集成之支付宝支付
  6. [T-SQL]从变量与数据类型说起
  7. 流形学习(manifold learning)的一些综述
  8. Poj 3368 Frequent values
  9. MongoDB初探系列之二:认识MongoDB提供的一些经常使用工具
  10. 字符串---分割成数组(str_split ),算出一个字符串中出现最多的字符, 学校中最多的姓名
  11. JavaScript基础1——基本概念
  12. spring boot RESTFul API拦截 以及Filter和interceptor 、Aspect区别
  13. 文件访问时间简记(Modify time 和 Change time)
  14. 关于使用jquery对input中type为radio的标签checked属性的增加与移除
  15. 内核第三讲,进入ring0,以及编写第一个内核驱动程序.
  16. Linux查看压缩文件内容【转】
  17. Hadoop+HBase 集群搭建
  18. pandas的to_csv()使用方法
  19. Win8下IIS的安装和站点的公布
  20. file.replace

热门文章

  1. XssEncode
  2. 探讨android更新UI的几种方法(转)
  3. 教你如何搭建vue项目
  4. Linux命令计算文件中某一列的平均值
  5. iOS设备定位服务开启判定
  6. HTML5 移动端如何使用css让百分比布局的弹窗水平和垂直方向上居中
  7. poj 1274 The Perfact Stall
  8. js 创建数组方法以及区别
  9. 【构建Android缓存模块】(一)吐槽与原理分析
  10. 使用Python爬虫爬取网络美女图片