实现一个标准数字字符串四舍五入截取不指定位数的小数

简介: 实现一个标准数字字符串四舍五入截取不指定位数的小数

实现一个标准数字字符串四舍五入截取不指定位数的小数


两种算法:

1.乘以10的指定位数幂次方,然后用系统四舍五入函数去掉小数位数),然后转成字符串,截取拼接字符串;

2.转成double类型(注意不能是float类型,很容易越界)加上乘以10的指定位数加1的幂次方。然后转成比较多位数的字符串,最后截取字符串。


下面是方法二的实现方法:


-(NSString *)getFloatStrWithFloatStr:(NSString *)floatStr
                           fixNumber:(NSUInteger)fixNumber
{
    NSLog(@"%.5f, %.f", 5.0/pow(10, fixNumber+1),pow(10, fixNumber+1));
    CGFloat actualAmountValue = [floatStr doubleValue] +5.0/pow(10, fixNumber+1);
    NSString *str1 = [NSString stringWithFormat:@"%.10f",  actualAmountValue];
    NSRange range = [str1 rangeOfString:@"."];
    NSString *newStr = [str1 substringToIndex:range.location+1+fixNumber];
    return newStr;
}


.函数调用:

NSLog(@"%@", [self getFloatStrWithFloatStr:@"123454.690877" fixNumber:3]);
目录
相关文章
|
设计模式 开发框架 监控
精准解读桥接模式-用桥接模式构建可扩展的软件系统
桥接模式是一种设计模式,旨在将抽象和实现部分分离,使它们可以独立地变化。这种模式的目的是提高系统的灵活性和可扩展性。桥接模式的主要思想是将抽象和实现通过一个桥接类连接起来,从而实现它们的解耦。在这种模式中,抽象部分可以根据需要进行扩展,而实现部分可以自由地变化,而不影响彼此。桥接模式在处理多个独立变化的维度、解耦继承关系、处理平台差异和扩展现有系统等方面具有广泛的应用领域。通过使用桥接模式,可以提高系统的可维护性和可扩展性,使系统更加灵活和适应变化。通过桥接模式,将系统中的抽象部分与实现部分解耦,从而...
269 0
精准解读桥接模式-用桥接模式构建可扩展的软件系统
|
11月前
|
消息中间件 监控 Java
Kafka 新的消费组默认的偏移量设置和消费行为
Kafka 新的消费组默认的偏移量设置和消费行为
733 1
|
8月前
|
Android开发
通译灵码,果然不凡
我是一名全栈开发工程师,使用通义灵码个人版IDEA/DevEcoStudio/Android Studio进行程序开发。通过安装灵码插件,开发效率提升了约40%。安装步骤:进入Setting->插件->搜索“lingma”->点击安装。
307 3
|
8月前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩在读者群中分享了关于分库分表的基因算法设计,旨在帮助大家应对一线互联网企业的面试题。文章详细介绍了分库分表的背景、分片键的设计目标和建议,以及基因法的具体应用和优缺点。通过系统化的梳理,帮助读者提升架构、设计和开发水平,顺利通过面试。
美团面试:百亿级分片,如何设计基因算法?
|
11月前
|
消息中间件 Kubernetes Kafka
日志采集/分析
日志采集/分析
222 7
|
XML Android开发 数据格式
关于Android中Spinner的使用
关于Android中Spinner的使用
148 1
|
存储 网络安全 数据安全/隐私保护
scp上传文件到远程服务器,如何避免每次都要输入远程服务器的密码
scp上传文件到远程服务器,如何避免每次都要输入远程服务器的密码
537 0
|
索引 Python
Pandas 2.2 中文官方教程和指南(十一·二)(1)
Pandas 2.2 中文官方教程和指南(十一·二)
126 1
|
存储 Go C++
【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析(二)
Go 语言中的复合数据类型包括数组、切片(slice)、映射(map)和结构体(struct)。
135 0