iOS 四舍五入保留两位小数
来源:互联网 发布:免费网络图书馆 编辑:程序博客网 时间:2024/05/29 07:38
通常我们四舍五入输出可能你会用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 保留两位小数 不四舍五入
- iOS 四舍五入保留两位小数
- iOS 保留两位小数,避免四舍五入
- 四舍五入保留两位小数
- 四舍五入保留两位小数
- java 小数四舍五入 保留两位小数
- ios客户端学习-四舍五入保留两位小数
- 将数字四舍五入保留两位小数
- java 四舍五入后保留两位小数
- 保留两位小数即四舍五入
- 新JS四舍五入保留两位小数
- JS保留两位小数 四舍五入函数
- JavaScript四舍五入保留两位小数
- 保留四舍五入后的两位小数
- JavaScript四舍五入保留两位小数
- JS保留两位小数 四舍五入函数
- JS保留两位小数 四舍五入函数
- java四舍五入保留两位小数
- Tomcat+MySQL为自己的APP打造服务器(3-1)Android 和 Service 的交互之GET方式
- JAVA 内存划分
- docker 循环依赖的网络设置
- spark入门介绍(菜鸟必看)
- 软件性能测试_loadrunner之web_custom_request应用示例
- iOS 四舍五入保留两位小数
- python中使用from..import时,提示SyntaxError:invalid syntax
- 海康、大华设备搜索大概实现原理
- 删除重复文件的程序
- python3 用socketserver框架建立TCP,UDP服务器
- scikit-learn学习之SVM算法
- cs231n学习笔记-CNN-目标检测、定位、分割
- MyBatis入门学习二:面向接口编程
- IL指令汇总