iOS 四舍五入保留两位小数
通常我们四舍五入输出可能你会用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);
Example:如何值是3.4的话,则
3.4 -- round 3.000000
-- ceil 4.000000
-- floor 3.00000
iOS 四舍五入保留两位小数相关推荐
- c++ 四舍五入保留两位小数_Excel中保留小数点位数
今天老板让我把带有小数点的表格进行整理,老板说把数据整理成保留两位,默认为四舍五入,老板还要整理成一种不四舍五入的数据.好的老板马上整理,这次老板的要求正好是我会的,真棒!我们一起来学一下吧. 首先我 ...
- JavaScript计算两个文本框内数据的乘积(四舍五入保留两位小数)
function check(id) { var re = /^[0-9]+.?[0-9]*$/; //判断数字是否合法的正则表达式 var danjia=document.getElementByI ...
- 【PAT甲级 ArrayList存放class】1011 World Cup Betting (20 分) Java版 3/3通过 四舍五入保留两位小数
题目 一共给9个数,3*3,找到每行最大,按照题目要求套算式,计算就行 坑 & 心得 没啥坑,一次通过,用到的知识点是:自定义排序.四舍五入保留两位小数 DecimalFormat df = ...
- 求以下double数组的平均值(四舍五入保留两位小数):
import java.math.BigDecimal;/*** 求以下double数组的平均值(四舍五入保留两位小数):* double[] arr = {0.1,0.2,2.1,3.2,5.56, ...
- 19-6/24作业: 将一个double类型的小数,按照四舍五入保留两位小数
☞要求 将一个double类型的小数,按照四舍五入保留两位小数 ☞实现方式 1.获得一个double类型的小数 2.使用BigDecimal包的setScale进行操作 3.输出结果 ☞代码内容 pa ...
- java float四舍五入保留两位小数_java基础入门-float四舍五入保留两位小数注意的地方...
float四舍五入保留两位小数注意的地方 最近在codewars做了一道非常简单的题目,但是它却花了我20来分钟,虽然最后解决了,但是中间发觉对于java的基础实在不行,回去要好好补一下 不说这么多, ...
- JS 四舍五入保留两位小数
Html 四舍五入保留两位小数: Html: <input type="number" step=".01" id="amount" ...
- C#不四舍五入保留两位小数
/// <summary>/// 不四舍五入保留两位小数/// </summary>/// <param name="money"></p ...
- 利用Python3四舍五入保留两位小数
说明:利用Python3四舍五入保留两位小数,曾踩过的坑分享给大家,希望能够共勉! 坑1:字符串格式化 a = 1.234 print("%.2f" % a) # ...
最新文章
- 刷墙(左蓝右红或同一色)
- Linux与云计算——第二阶段Linux服务器架设 第八章:FTP服务器架设—安装配置FTP服务和客户端配置...
- 将获取到的JSONObject和JSONArray转换为实体对象
- 在 aws emr 上,将 hbase table A 的数据,对 key 做 hash,写到另外一张 table B
- JAVA中构造器和方法的区别点
- 张朝阳:知识直播是长久的事情 商业模式将水到渠成
- python中dumps和dump区别_python json.dumps() json.dump()的区别
- Makefile万能写法(gcc程序以及arm-linux-gcc程序)-转
- vmware提示虚拟机似乎正在使用中
- Servlet3.0 jsp跳转到Servlet 出现404错误的路径设置方法
- Win10删除微软拼音输入法
- 分享一个边看视频就能边练口语的学习网站,超实用,不仅仅能学英语
- Android 8.1 DisplayPowerController(三) 亮度调节
- 2-网络编程学习环境搭建
- 手机影像ISP流程:AWB(1)
- 西门子S7-300/400 PLC下载
- php写串口上位机,QT5串口编程—编写简单的上位机
- 【机器学习】舍友居然偷偷在看这篇文章·入门机器学习
- 自由操控声音-相位声码器-变速篇(一)
- calibre ebook viewer 自定义样式