-
Notifications
You must be signed in to change notification settings - Fork 0
iOS向上取整、向下取整、四舍五入
Deepin edited this page Apr 23, 2021
·
1 revision
/// 两个整数
NSInteger a = 123;
NSInteger b = 3;
/// 根据 a / b 的结果再向上取整;
/// 若是直接如下写
CGFloat v = a / b;
/// 那么此处不管是用CGFloat还是Double来接受,得到的虽然是小数,但后面小数位都是.00,精度已经缺失,此时再取整,当然数据已经不对了;
/// 原因:两个整数相除,默认是只会保留整数部分,丢失小数部分的,若是希望可以保证精度,则需要至少将a与b其中的一个转为CGFloat或者Double,两个都转最好;
/// 再计算就没有问题了。
以上场景就是对于取整这种需求特别在意的地方;
- float类型: ceilf(float)
- double类型: ceil(double)
- long double类型: ceill(long double)
- float类型: floorf(float)
- double类型: floor(double)
- long double类型: floorl(long double)
- float类型: roundf(float)
- double类型: round(double)
- long double类型: roundl(long double)
CGFloat a = 4.3;
向上取整:5.0 向下取整:4.0 四舍五入:4.0
CGFloat b = -4.3;
向上取整:-4.0 向下取整:-5.0 四舍五入:-4.0 注意:负数的向上取整和向下取整和正数相反
double c = 5.8;
向上取整:6.0 向下取整:5.0 四舍五入:6.0