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

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

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


两种算法:

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]);
目录
相关文章
|
12月前
|
Android开发
通译灵码,果然不凡
我是一名全栈开发工程师,使用通义灵码个人版IDEA/DevEcoStudio/Android Studio进行程序开发。通过安装灵码插件,开发效率提升了约40%。安装步骤:进入Setting->插件->搜索“lingma”->点击安装。
462 3
|
缓存 测试技术 API
解锁开源模型高性能服务:SGLang Runtime 应用场景与实践
SGLang 是一个用于大型语言模型和视觉语言模型的推理框架。
|
存储 网络安全 数据安全/隐私保护
scp上传文件到远程服务器,如何避免每次都要输入远程服务器的密码
scp上传文件到远程服务器,如何避免每次都要输入远程服务器的密码
573 0
|
12月前
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩在读者群中分享了关于分库分表的基因算法设计,旨在帮助大家应对一线互联网企业的面试题。文章详细介绍了分库分表的背景、分片键的设计目标和建议,以及基因法的具体应用和优缺点。通过系统化的梳理,帮助读者提升架构、设计和开发水平,顺利通过面试。
美团面试:百亿级分片,如何设计基因算法?
|
存储 定位技术 Python
Python读取多个栅格文件并提取像元的各波段时间序列数据与变化值
Python读取多个栅格文件并提取像元的各波段时间序列数据与变化值
250 1
|
SQL 安全 中间件
Go开发:如何封装函数来统计执行时间
Go开发:如何封装函数来统计执行时间
692 0
|
机器学习/深度学习
以波士顿房价预测为例,演示欠拟合问题和解决办法
以波士顿房价预测为例,演示欠拟合问题和解决办法
128 0
|
自然语言处理 算法
Jieba进行词频统计与关键词提取
Jieba进行词频统计与关键词提取
|
NoSQL 网络协议 数据可视化
ARM深入理解-hypervisor调试方法二(QEMU+GDB调试ARM程序)
ARM深入理解-hypervisor调试方法二(QEMU+GDB调试ARM程序)
|
API
JDK8之前的时间类
JDK8之前的时间类
114 0