iOS返回一个前面没有0,小数点后保留两位的数字字符串
2015-04-14 10:31
411 查看
/* * 处理一个数字加小数点的字符串,前面无0,保留两位。网上有循环截取的方法,如果数字过长,浪费内存,这个方法在优化内存的基础上设计的。 */ -(NSString*)getTheCorrectNum:(NSString*)tempString { //先判断第一位是不是 . ,是 . 补0 if ([tempString hasPrefix:@"."]) { tempString = [NSString stringWithFormat:@"0%@",tempString]; } //计算截取的长度 NSUInteger endLength = tempString.length; //判断字符串是否包含 . if ([tempString containsString:@"."]) { //取得 . 的位置 NSRange pointRange = [tempString rangeOfString:@"."]; NSLog(@"%lu",pointRange.location); //判断 . 后面有几位 NSUInteger f = tempString.length - 1 - pointRange.location; //如果大于2位就截取字符串保留两位,如果小于两位,直接截取 if (f > 2) { endLength = pointRange.location + 2; } } //先将tempString转换成char型数组 NSUInteger start = 0; const char *tempChar = [tempString UTF8String]; //遍历,去除取得第一位不是0的位置 for (int i = 0; i < tempString.length; i++) { if (tempChar[i] == '0') { start++; }else { break; } } //如果第一个字母为 . start后退一位 if (tempChar[start] == '.') { start--; } //根据最终的开始位置,计算长度,并截取 NSRange range = {start,endLength-start}; tempString = [tempString substringWithRange:range]; return tempString; }
相关文章推荐
- iOS 货币交易输入数字检测 小数点前面三位,小数点后允许两位,并且向上取整(无精度丢失问题)
- iOS 算法~写一个函数,返回数字1-N排列组成的字符串,数字之间通过空格分离.例如1-5.返回”1 2 3 4 5”
- iOS最完美的UITextField中输入金额,只能输入数字和小数点,保留两位小数点且0放在首位
- 给一个金额字符串插入逗号分隔 保留两位有效数字
- Swift - 数字格式化转成字符串(保留两位小数,前面补0等)
- Oracle日期、字符串格式化函数,位数不足前面加0,一位数字显示两位,格式化数字为定长
- iOS判断一个字符串中是否都是数字
- UITextField 只能输入数字、一个小数点、只能有两位小数
- JS对数字进行货币格式化并且保留两位小数点,小数用0补全
- 处理一个数字加小数点的字符串
- 基本字符串压缩 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- iOS double类型的数据设置小数点后保留两位
- 返回一个字符串的所有数字
- 大数乘法。给定两个数字表示为字符串,返回乘数的数字作为一个字符串。
- 【c语言】为下面的函数原型编写函数定义,这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。
- iOS判断一个字符串中是否都是数字
- HTML控制文本框只能输入数字和小数点,并且只能保留小数点后两位
- ios学习之 如何判断一个字符串的内容是纯数字 一般用于手机号注册
- 已知一个字符串,比如asderwsde,寻找其中的一个子字符串比如sde 的个数,如果没有返回0,有的话返回子字符串的个数。
- SQLServer中查询的数字列前面补0返回指定长度的字符串