`

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

阅读更多

方法一:

 

-(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) 就可以实现四舍五入到两位小数。

分享到:
评论

相关推荐

    ios-四舍五入.zip

    "ios-四舍五入.zip"这个压缩包文件很可能包含了对 NSNumber 类的一个分类,用于扩展其四舍五入的功能。分类是一种Objective-C中的机制,它允许我们在不修改原有类源代码的情况下,为已有的类添加新的方法。 在...

    iOS字符串无误差计算工具类NSDecimalNumber链式封装支持四舍五入

    标题提到的"iOS字符串无误差计算工具类NSDecimalNumber链式封装支持四舍五入"正是为了解决这一问题而设计的。NSDecimalNumber是苹果提供的一个类,它提供了对十进制数值进行精确计算的方法,避免了浮点数的精度损失...

    the-ios5-developer-cookbook-3rd-edition.pdf

    《iOS 5 开发者食谱》是一本专注于 iOS 5.0 的开发书籍,旨在帮助开发者掌握 iPhone 应用开发的基础和高级技巧。该书通过实际案例和深入的技术解析,为读者提供了一个全面的 iPhone 开发视角。 ### 知识点2:作者的...

    ios-计算器.zip

    在iOS开发中,创建一个功能完善的计算器应用是一个常见的任务,涉及到UI设计、事件处理和数值计算等多个方面。标题“ios-计算器.zip”暗示了我们正在讨论一个关于iOS平台的计算器应用源代码。这个压缩包可能包含了一...

    iOS开发 通用Utilities类 工具函数集合

    3. **数值计算**:包括数学运算、百分比计算、取整、四舍五入等功能,帮助处理数字相关的逻辑。 4. **颜色操作**:创建、转换和操作UIColor对象,例如从十六进制转为UIColor,或根据RGB值生成颜色。 5. **图片处理...

    ios 常见问题

    #### 八、浮点数四舍五入问题 **问题描述**:浮点数进行整数转换时,默认行为与预期不符。 **解决方法**: 1. **使用`NSLog`格式化输出**:`NSLog(@"%0.f", i);` 会自动进行四舍五入处理。 2. **强制类型转换**:`...

    详解iOS之关于double/float数据计算精度问题

    例如,我们可以使用以下方法来四舍五入一个数字: - (NSString*)Rounding:(float)number afterPoint:(NSInteger)position { NSDecimalNumberHandler *handler = [NSDecimalNumberHandler ...

    iOS 解决floatValue,doubleValue等计算不精确问题,一句话解决精确计算,精确比较

    3. **格式化输出**:在显示浮点数时,可以使用特定的格式进行四舍五入,以确保显示的数值是精确的。Swift中可以使用`NumberFormatter`来实现。 ```swift let formatter = NumberFormatter() formatter....

    IOS 中UIKit-UIPageControl利用delegate定位圆点位置

    在iOS开发中,UIKit框架提供了许多组件用于构建用户界面,其中之一就是UIPageControl。UIPageControl通常与UIScrollView一起使用,用于在浏览多页内容时指示当前显示的页面。它显示一系列小圆点,每个圆点代表一个...

    Zhang yuqin-ABAP运算.ppt

    整数运算在ABAP中进行时,通常会四舍五入到最近的整数。这种运算速度较快,但可能会带来精度问题。定点数(P类型)在内存中以特定的位模式表示,如示例中的percentage(3) TYPE p DECIMALS 2,它是一个3字节的定点数...

    iOS NSDecimalNumber解决数值计算不精确问题,一句话解决精确计算,精确比较

    在iOS开发中,我们经常会遇到一个困扰:当涉及到浮点数计算时,由于浮点数表示的精度限制,可能会导致计算结果出现不精确的问题。标题和描述中提到的"iOS NSDecimalNumber解决数值计算不精确问题,一句话解决精确...

    iOS精算,小数位自定义

    3. **控制小数位数**:`NSDecimalNumber`提供了`roundedAccordingToBehavior:`方法,配合`NSRoundingBehavior`来控制四舍五入规则和保留的小数位数。例如,保留两位小数: ```swift let roundingBehavior = ...

    浅谈iOS 关于小数精确计算(NSDecimalNumber)

    这段代码首先定义了一个处理策略,设置四舍五入模式为最接近的数字(`NSRoundPlain`),保留两位小数。然后创建两个`NSDecimalNumber`对象,分别表示`0.01`和`99999999`,并使用指定的处理策略进行乘法运算。最后...

    ios评价星级

    另一种方法是使用连续选择模型,然后在提交评价时四舍五入到最接近的半星。 4. **状态保存**:如果用户未完成评价就离开,应保存当前选中的星级,以便用户返回时能继续编辑。这可以通过实例变量或UserDefaults来...

    IOS通讯录联系人选择首字母T9拼音号码搜索排序实现

    本人ANDROID开发人员一枚,2个月前因为项目需求,学了一个礼拜的IOS开发。学了也一直没用上,最近刚好公司有个IOS项目中需要弄个通过点击按钮 选择手机通讯录中联系人··返回号码的功能。由于团队人员分配不过来,...

    Python入门.docx

    - 整数运算总是精确的,但浮点数运算可能产生四舍五入误差。 **3. 字符串:** - 由单引号 `'` 或双引号 `"` 括起的文本。 - 例如:`'abc'`, `"xyz"`。 - 单引号和双引号本身不是字符串的一部分。 **4. 布尔值:** ...

    计算方法与实习实验 报告

    - **从大加到小的顺序**理论上能减少累积误差,因为每次加上的数相对于当前和来说不是特别小,从而减少了舍入误差。 #### 1.2 序列和的有效位数计算 进一步,通过计算特定序列和的不同顺序来观察有效位数的变化。 ...

    iOS中NSNumberFormatter的介绍与用法

    1. `NSNumberFormatterNoStyle`: 这个样式不进行任何格式化,通常用于四舍五入到整数。 2. `NSNumberFormatterDecimalStyle`: 格式化为十进制数,保留小数位。 3. `NSNumberFormatterCurrencyStyle`: 以货币格式显示...

    Currency-Converter.rar_currency converter_xcode

    但实际应用中,可能还需要考虑货币精度、四舍五入规则,以及汇率波动带来的精度问题。开发者需要确保计算结果的准确性,同时考虑用户友好的显示格式。 在测试和调试阶段,开发者可能会使用Xcode内置的模拟器和调试...

    MT4使用教程

    MT4(MetaTrader 4)是一款由MetaQuotes Software Corp开发的专业外汇交易平台。它不仅适用于外汇市场,还能用于期货和股票市场的交易。MT4因其强大的功能、稳定的表现以及用户友好的界面而广受欢迎。 #### 二、MT4...

Global site tag (gtag.js) - Google Analytics