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


目录
相关文章
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之DataWorks中,修改数据模型中的字段的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
222 0
|
iOS开发
XCode控制台调试无法看到函数跟踪或无法看到输出的日志问题及解决方案
XCode控制台调试无法看到函数跟踪或无法看到输出的日志问题及解决方案
837 0
|
存储 缓存 安全
Java Concurrencyin Practice 并发编程实践系列 第二章 线程安全 Thread Safety 上
Java Concurrencyin Practice 并发编程实践系列 第二章 线程安全 Thread Safety 上
154 0
|
文字识别 开发工具 iOS开发
iOS扫描证件&银行卡信息识别;身份证识别 (正反) ;矩形边缘识别 ;自定义证件相机 (含demo源码)【修订版】
iOS扫描证件&银行卡信息识别;身份证识别 (正反) ;矩形边缘识别 ;自定义证件相机 (含demo源码)【修订版】
1005 0
iOS扫描证件&银行卡信息识别;身份证识别 (正反) ;矩形边缘识别 ;自定义证件相机 (含demo源码)【修订版】
|
并行计算 算法 API
如何玩转 WebGL 并行计算
如今在 Web 端使用 WebGL 进行高性能计算已有不少实践,例如在端智能领域中的 tensorflow.js,再比如可视化领域中的 Stardust.js。
如何玩转 WebGL 并行计算
|
iOS开发
iOS剪切板 UIPasteboard
1、前言 iOS在某些特定时刻需要把内容重一个app拷贝到另一个app 这时候我们就可以使用剪切板UIPasteboard 2、iOS自带剪切板操作的原生UI控件 在iOS中下面三个控件,自身就有复制-粘贴的功能: (1)、UITextView (2)、UITextField (3)、UIWebView 3、系统的剪切板UIPasteboard
2595 0