方法一:
-(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该怎么做?,在开发文档上有这样一个表,是按照保留小数点后一位处理的。相信大家一看就明白了:
方法二:
1、round(12345.6789) 结果为:12346
2、round(12345.6789*100)/100 结果为:12345.68
第二个是我要的结果,但是我不明白这么个简单的四舍五入要搞的这么复杂,应该有更好的吧,我记得在其他语言里用:round(12345.6789,2) 就可以实现四舍五入到两位小数。
相关推荐
"ios-四舍五入.zip"这个压缩包文件很可能包含了对 NSNumber 类的一个分类,用于扩展其四舍五入的功能。分类是一种Objective-C中的机制,它允许我们在不修改原有类源代码的情况下,为已有的类添加新的方法。 在...
标题提到的"iOS字符串无误差计算工具类NSDecimalNumber链式封装支持四舍五入"正是为了解决这一问题而设计的。NSDecimalNumber是苹果提供的一个类,它提供了对十进制数值进行精确计算的方法,避免了浮点数的精度损失...
《iOS 5 开发者食谱》是一本专注于 iOS 5.0 的开发书籍,旨在帮助开发者掌握 iPhone 应用开发的基础和高级技巧。该书通过实际案例和深入的技术解析,为读者提供了一个全面的 iPhone 开发视角。 ### 知识点2:作者的...
在iOS开发中,创建一个功能完善的计算器应用是一个常见的任务,涉及到UI设计、事件处理和数值计算等多个方面。标题“ios-计算器.zip”暗示了我们正在讨论一个关于iOS平台的计算器应用源代码。这个压缩包可能包含了一...
3. **数值计算**:包括数学运算、百分比计算、取整、四舍五入等功能,帮助处理数字相关的逻辑。 4. **颜色操作**:创建、转换和操作UIColor对象,例如从十六进制转为UIColor,或根据RGB值生成颜色。 5. **图片处理...
#### 八、浮点数四舍五入问题 **问题描述**:浮点数进行整数转换时,默认行为与预期不符。 **解决方法**: 1. **使用`NSLog`格式化输出**:`NSLog(@"%0.f", i);` 会自动进行四舍五入处理。 2. **强制类型转换**:`...
例如,我们可以使用以下方法来四舍五入一个数字: - (NSString*)Rounding:(float)number afterPoint:(NSInteger)position { NSDecimalNumberHandler *handler = [NSDecimalNumberHandler ...
3. **格式化输出**:在显示浮点数时,可以使用特定的格式进行四舍五入,以确保显示的数值是精确的。Swift中可以使用`NumberFormatter`来实现。 ```swift let formatter = NumberFormatter() formatter....
在iOS开发中,UIKit框架提供了许多组件用于构建用户界面,其中之一就是UIPageControl。UIPageControl通常与UIScrollView一起使用,用于在浏览多页内容时指示当前显示的页面。它显示一系列小圆点,每个圆点代表一个...
整数运算在ABAP中进行时,通常会四舍五入到最近的整数。这种运算速度较快,但可能会带来精度问题。定点数(P类型)在内存中以特定的位模式表示,如示例中的percentage(3) TYPE p DECIMALS 2,它是一个3字节的定点数...
在iOS开发中,我们经常会遇到一个困扰:当涉及到浮点数计算时,由于浮点数表示的精度限制,可能会导致计算结果出现不精确的问题。标题和描述中提到的"iOS NSDecimalNumber解决数值计算不精确问题,一句话解决精确...
3. **控制小数位数**:`NSDecimalNumber`提供了`roundedAccordingToBehavior:`方法,配合`NSRoundingBehavior`来控制四舍五入规则和保留的小数位数。例如,保留两位小数: ```swift let roundingBehavior = ...
这段代码首先定义了一个处理策略,设置四舍五入模式为最接近的数字(`NSRoundPlain`),保留两位小数。然后创建两个`NSDecimalNumber`对象,分别表示`0.01`和`99999999`,并使用指定的处理策略进行乘法运算。最后...
另一种方法是使用连续选择模型,然后在提交评价时四舍五入到最接近的半星。 4. **状态保存**:如果用户未完成评价就离开,应保存当前选中的星级,以便用户返回时能继续编辑。这可以通过实例变量或UserDefaults来...
本人ANDROID开发人员一枚,2个月前因为项目需求,学了一个礼拜的IOS开发。学了也一直没用上,最近刚好公司有个IOS项目中需要弄个通过点击按钮 选择手机通讯录中联系人··返回号码的功能。由于团队人员分配不过来,...
- 整数运算总是精确的,但浮点数运算可能产生四舍五入误差。 **3. 字符串:** - 由单引号 `'` 或双引号 `"` 括起的文本。 - 例如:`'abc'`, `"xyz"`。 - 单引号和双引号本身不是字符串的一部分。 **4. 布尔值:** ...
- **从大加到小的顺序**理论上能减少累积误差,因为每次加上的数相对于当前和来说不是特别小,从而减少了舍入误差。 #### 1.2 序列和的有效位数计算 进一步,通过计算特定序列和的不同顺序来观察有效位数的变化。 ...
1. `NSNumberFormatterNoStyle`: 这个样式不进行任何格式化,通常用于四舍五入到整数。 2. `NSNumberFormatterDecimalStyle`: 格式化为十进制数,保留小数位。 3. `NSNumberFormatterCurrencyStyle`: 以货币格式显示...
但实际应用中,可能还需要考虑货币精度、四舍五入规则,以及汇率波动带来的精度问题。开发者需要确保计算结果的准确性,同时考虑用户友好的显示格式。 在测试和调试阶段,开发者可能会使用Xcode内置的模拟器和调试...
MT4(MetaTrader 4)是一款由MetaQuotes Software Corp开发的专业外汇交易平台。它不仅适用于外汇市场,还能用于期货和股票市场的交易。MT4因其强大的功能、稳定的表现以及用户友好的界面而广受欢迎。 #### 二、MT4...