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

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

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


两种算法:

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]);
目录
相关文章
|
8月前
|
存储
【BigDecima】不可变的,任意精度的有符号十进制数。
【BigDecima】不可变的,任意精度的有符号十进制数。
69 0
|
8月前
28.求任意一个整数的十位上的数字
28.求任意一个整数的十位上的数字
85 3
wustojc2001输出四位整数的各位数字
wustojc2001输出四位整数的各位数字
73 0
|
C语言
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
整数和浮点数的任意进制转!!(包括16进制)确定不进来看看?!
160 0
|
C++
C++ 输出特定位数小数
C++ 输出特定位数小数
152 0
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
求整数的位数及各位数字之和
求整数的位数及各位数字之和
107 0
|
JavaScript 前端开发
数字和字符串相加
数字和字符串相加
141 0
|
算法 Java 程序员
使用位运算方法实现十进制数字转换为十六进制数
给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。
使用位运算方法实现十进制数字转换为十六进制数