通常我们四舍五入输出可能你会用NSString stringWithFormat函数%.2f方式,但是这个四舍五入有时可能不是四舍五入,而是五舍六入。其实有更精确的四舍五入方式。

先说一下最后确定使用的方法:(四舍五入,保留两位小数)

-(float)roundFloat:(float)price{

return roundf(price*100)/100;

}

(保留1位小数100改为10,以此类推)

下面再说说这个曲折的过程,首先我想到的是用ios里面自带的round方法,

-(float)roundFloat:(float)price{

return roundf(price);

}

但是如下举例

float test = 23.625;

float test2 = 23.6250;

float test3 = 23.6251;

test = [self roundFloat:test];

test2 = [self roundFloat:test2];

test3 = [self roundFloat:test3];

NSLog(@"test:%.2f",test);

NSLog(@"test2:%.2f",test2);

NSLog(@"test3:%.2f",test3);

得出结果:

test:24.00

test2:24.00

test3:24.00


很显然不是我想要的效果,经过改进便是如下结果,

-(float)roundFloat:(float)price{

return roundf(price*100)/100;

}

有人说此方法不知在什么数据情况下会不准,还有个更保险的方法:

-(float)roundFloat:(float)price{

return (floorf(price*100 + 0.5))/100;

}

:iOS中round/ceil/floorf函数略解

extern float ceilf(float);

extern double ceil(double);

extern long double ceill(long double);

extern float floorf(float);

extern double floor(double);

extern long double floorl(longdouble);

extern float roundf(float);

extern double round(double);

extern long double roundl(longdouble);

round:如果参数是小数,则求本身的四舍五入。
ceil:如果参数是小数,则求最小的整数但不小于本身.(向上取整)
floor:如果参数是小数,则求最大的整数但不大于本身. (向下取整)

Example:如何值是3.4的话,则

3.4 -- round 3.000000

-- ceil 4.000000

-- floor 3.00000

iOS 四舍五入保留两位小数相关推荐

  1. c++ 四舍五入保留两位小数_Excel中保留小数点位数

    今天老板让我把带有小数点的表格进行整理,老板说把数据整理成保留两位,默认为四舍五入,老板还要整理成一种不四舍五入的数据.好的老板马上整理,这次老板的要求正好是我会的,真棒!我们一起来学一下吧. 首先我 ...

  2. JavaScript计算两个文本框内数据的乘积(四舍五入保留两位小数)

    function check(id) { var re = /^[0-9]+.?[0-9]*$/; //判断数字是否合法的正则表达式 var danjia=document.getElementByI ...

  3. 【PAT甲级 ArrayList存放class】1011 World Cup Betting (20 分) Java版 3/3通过 四舍五入保留两位小数

    题目 一共给9个数,3*3,找到每行最大,按照题目要求套算式,计算就行 坑 & 心得 没啥坑,一次通过,用到的知识点是:自定义排序.四舍五入保留两位小数 DecimalFormat df = ...

  4. 求以下double数组的平均值(四舍五入保留两位小数):

    import java.math.BigDecimal;/*** 求以下double数组的平均值(四舍五入保留两位小数):* double[] arr = {0.1,0.2,2.1,3.2,5.56, ...

  5. 19-6/24作业: 将一个double类型的小数,按照四舍五入保留两位小数

    ☞要求 将一个double类型的小数,按照四舍五入保留两位小数 ☞实现方式 1.获得一个double类型的小数 2.使用BigDecimal包的setScale进行操作 3.输出结果 ☞代码内容 pa ...

  6. java float四舍五入保留两位小数_java基础入门-float四舍五入保留两位小数注意的地方...

    float四舍五入保留两位小数注意的地方 最近在codewars做了一道非常简单的题目,但是它却花了我20来分钟,虽然最后解决了,但是中间发觉对于java的基础实在不行,回去要好好补一下 不说这么多, ...

  7. JS 四舍五入保留两位小数

    Html 四舍五入保留两位小数: Html: <input type="number" step=".01" id="amount" ...

  8. C#不四舍五入保留两位小数

    /// <summary>/// 不四舍五入保留两位小数/// </summary>/// <param name="money"></p ...

  9. 利用Python3四舍五入保留两位小数

    说明:利用Python3四舍五入保留两位小数,曾踩过的坑分享给大家,希望能够共勉! 坑1:字符串格式化 a = 1.234        print("%.2f" % a)  # ...

最新文章

  1. 刷墙(左蓝右红或同一色)
  2. Linux与云计算——第二阶段Linux服务器架设 第八章:FTP服务器架设—安装配置FTP服务和客户端配置...
  3. 将获取到的JSONObject和JSONArray转换为实体对象
  4. 在 aws emr 上,将 hbase table A 的数据,对 key 做 hash,写到另外一张 table B
  5. JAVA中构造器和方法的区别点
  6. 张朝阳:知识直播是长久的事情 商业模式将水到渠成
  7. python中dumps和dump区别_python json.dumps() json.dump()的区别
  8. Makefile万能写法(gcc程序以及arm-linux-gcc程序)-转
  9. vmware提示虚拟机似乎正在使用中
  10. Servlet3.0 jsp跳转到Servlet 出现404错误的路径设置方法
  11. Win10删除微软拼音输入法
  12. 分享一个边看视频就能边练口语的学习网站,超实用,不仅仅能学英语
  13. Android 8.1 DisplayPowerController(三) 亮度调节
  14. 2-网络编程学习环境搭建
  15. 手机影像ISP流程:AWB(1)
  16. 西门子S7-300/400 PLC下载
  17. php写串口上位机,QT5串口编程—编写简单的上位机
  18. 【机器学习】舍友居然偷偷在看这篇文章·入门机器学习
  19. 自由操控声音-相位声码器-变速篇(一)
  20. calibre ebook viewer 自定义样式

热门文章

  1. 【算法】 二叉树遍历
  2. 经典好文!java保留两位小数不四舍五入
  3. 2021年大一下网页期末作业(纯html+css实现)
  4. supervisord 简介
  5. hasText()和isEmpty()区别
  6. 前端优化-前端性能优化
  7. 【分享】光纤光缆PPT
  8. Android笔试题大全(持续更新中),安卓应用开发项目
  9. Anaconda下载及安装保姆级教程(详细图文)
  10. windows 命令行查找字符串 和 文件(find findstr for)