IOS开发之----四舍五入问题

简介: <span style="word-wrap:normal; word-break:normal; line-height:21px; font-size:14px; color:rgb(69,69,69); font-family:'Microsoft Yahei',微软雅黑,Tahoma,Arial,Helvetica,sTHeiti">方法一:</span><span style="
方法一:

 

-(NSString *)notRounding:(float)price afterPoint:(int)position{

    NSDecimalNumberHandler* roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:position raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];

    NSDecimalNumber *ouncesDecimal;

    NSDecimalNumber *roundedOunces;

    

    ouncesDecimal = [[NSDecimalNumber alloc] initWithFloat:price];

    roundedOunces = [ouncesDecimal decimalNumberByRoundingAccordingToBehavior:roundingBehavior];

    [ouncesDecimal release];

    return [NSString stringWithFormat:@"%@",roundedOunces];

}

介绍一下参数:

price:需要处理的数字,

position:保留小数点第几位,

然后调用

 

    float s =0.126;

    NSString *sv = [self notRounding:s afterPoint:2];

    NSLog(@"sv = %@",sv);

输出结果为:sv = 0.12

 

接下来介绍NSDecimalNumberHandler初始化时的关键参数:decimalNumberHandlerWithRoundingMode:NSRoundDown,

NSRoundDown代表的就是 只舍不入。

scale的参数position代表保留小数点后几位。

 

如果只入不舍怎么办,比如,float 0.162 想要得到0.17该怎么做?,在开发文档上有这样一个表,是按照保留小数点后一位处理的。相信大家一看就明白了:

IOS开发之----四舍五入问题


方法二:


 

1round(12345.6789) 结果为:12346

2round(12345.6789*100)/100 结果为:12345.68

第二个是我要的结果,但是我不明白这么个简单的四舍五入要搞的这么复杂,应该有更好的吧,我记得在其他语言里用:round(12345.67892) 就可以实现四舍五入到两位小数。


目录
相关文章
antd 的table中的数据 保留小数点后两位的代码
antd 的table中的数据 保留小数点后两位的代码,你可以使用 `antd` 中的 `Table` 组件的 `render` 函数来展示保留小数点后两位的数据。
372 0
|
3月前
|
C语言
C语言------猜数字游戏----有次数限制版
C语言------猜数字游戏----有次数限制版
|
3月前
|
C语言
C语言----开学----输出一个数字,表示开学日期是星期几
C语言----开学----输出一个数字,表示开学日期是星期几
|
存储
扫雷----超详解+完整原码(扩展版)(下)
扫雷----超详解+完整原码(扩展版)(下)
37 0
|
4月前
字母错题集----H
字母错题集----H
26 0
|
4月前
字母错题集----C
字母错题集----C
33 0
|
10月前
|
C语言
C语言每日一题 ---- 打印从1到最大的n位数(Day 1)
C语言每日一题 ---- 打印从1到最大的n位数(Day 1)
61 0
|
存储 安全 C语言
扫雷----超详解+完整原码(扩展版)(上)
扫雷----超详解+完整原码(扩展版)(上)
82 0
|
存储 C语言
C语言-------如何打印保留小数点后1,2,..位
C语言-------如何打印保留小数点后1,2,..位
两数之和---------梦开始的地方
前言 本题为力扣官网第一题。 题目:力扣
64 0