iOS開(kāi)發(fā)之?dāng)?shù)字每隔3位用逗號(hào)分隔
demo: 源碼下載:http://xiazai.jb51.net/201709/yuanma/DMLimtDemo_jb51.rar
之前做電商類APP時(shí),針對(duì)稍大的金額展示時(shí),需要每隔千位添加逗號(hào)便于用戶識(shí)別。
邏輯比較簡(jiǎn)單,這里按需要寫了一個(gè)可選前后綴的一個(gè)轉(zhuǎn)換方法:
#import "DMViewController.h"
@interface DMViewController ()
@property (weak, nonatomic) IBOutlet UITextField *titleText;
@property (weak, nonatomic) IBOutlet UILabel *numLab;
@end
@implementation DMViewController
- (IBAction)tapButtonAction:(id)sender {
UIButton *tempBut = (UIButton *)sender;
if (tempBut.isSelected) {
tempBut.selected = NO;
_numLab.text = @"label";
} else {
tempBut.selected = YES;
NSString *newNumber = [self separateNumberUseCommaWith:_titleText.text];
_numLab.text = newNumber;
}
}
// 將數(shù)字轉(zhuǎn)為每隔3位整數(shù)由逗號(hào)“,”分隔的字符串
- (NSString *)separateNumberUseCommaWith:(NSString *)number {
// 前綴
NSString *prefix = @"¥";
// 后綴
NSString *suffix = @"元";
// 分隔符
NSString *divide = @",";
NSString *integer = @"";
NSString *radixPoint = @"";
BOOL contains = NO;
if ([number containsString:@"."]) {
contains = YES;
// 若傳入浮點(diǎn)數(shù),則需要將小數(shù)點(diǎn)后的數(shù)字分離出來(lái)
NSArray *comArray = [number componentsSeparatedByString:@"."];
integer = [comArray firstObject];
radixPoint = [comArray lastObject];
} else {
integer = number;
}
// 將整數(shù)按各個(gè)字符為一組拆分成數(shù)組
NSMutableArray *integerArray = [[NSMutableArray alloc] init];
for (int i = 0; i < integer.length; i ++) {
NSString *subString = [integer substringWithRange:NSMakeRange(i, 1)];
[integerArray addObject:subString];
}
// 將整數(shù)數(shù)組倒序每隔3個(gè)字符添加一個(gè)逗號(hào)“,”
NSString *newNumber = @"";
for (NSInteger i = 0 ; i < integerArray.count ; i ++) {
NSString *getString = @"";
NSInteger index = (integerArray.count-1) - i;
if (integerArray.count > index) {
getString = [integerArray objectAtIndex:index];
}
BOOL result = YES;
if (index == 0 && integerArray.count%3 == 0) {
result = NO;
}
if ((i+1)%3 == 0 && result) {
newNumber = [NSString stringWithFormat:@"%@%@%@",divide,getString,newNumber];
} else {
newNumber = [NSString stringWithFormat:@"%@%@",getString,newNumber];
}
}
if (contains) {
newNumber = [NSString stringWithFormat:@"%@.%@",newNumber,radixPoint];
}
if (![prefix isEqualToString:@""]) {
newNumber = [NSString stringWithFormat:@"%@%@",prefix,newNumber];
}
if (![suffix isEqualToString:@""]) {
newNumber = [NSString stringWithFormat:@"%@%@",newNumber,suffix];
}
return newNumber;
}
@end
示意圖:

總結(jié)
以上所述是小編給大家介紹的iOS開(kāi)發(fā)之?dāng)?shù)字每隔3位用逗號(hào)分隔,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
iOS中時(shí)間與時(shí)間戳的相互轉(zhuǎn)化實(shí)例代碼
這篇文章主要介紹了iOS中時(shí)間與時(shí)間戳的相互轉(zhuǎn)化實(shí)例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03
iOS實(shí)現(xiàn)淘寶上拉進(jìn)入詳情頁(yè)交互效果
最近遇到一個(gè)項(xiàng)目,項(xiàng)目中某個(gè)新需求的交互要求仿照淘寶上拉從下往上彈出寶貝詳情。所以死打開(kāi)淘寶APP仔細(xì)看了看,然后自己寫了寫,現(xiàn)在感覺(jué)效果差不多了,記錄一下分享給大家,方法自己和大家需要的時(shí)候查看借鑒,感興趣的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
利用iOS動(dòng)畫來(lái)模擬音量振動(dòng)條的實(shí)現(xiàn)
本篇文章主要利用iOS動(dòng)畫來(lái)模擬音量振動(dòng)條的實(shí)現(xiàn)以及對(duì)CAReplicatorLayer的簡(jiǎn)單介紹,需要的朋友可以參考下2015-07-07
解決ios微信下vue項(xiàng)目組件切換并自動(dòng)播放音頻問(wèn)題
最近在做一個(gè)英語(yǔ)答題項(xiàng)目,項(xiàng)目需求是通過(guò)答題取的成績(jī) , 答題的題型是分為,聽(tīng)音選圖,看圖選詞和填空題.下面小編給大家?guī)?lái)了ios微信下vue項(xiàng)目組件切換并自動(dòng)播放音頻的解決方案,需要的朋友參考下吧2018-01-01
淺談iphone X的簡(jiǎn)單適配問(wèn)題(推薦)
這篇文章主要介紹了淺談iphone X的簡(jiǎn)單適配(推薦),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
實(shí)例講解iOS中的CATransition轉(zhuǎn)場(chǎng)動(dòng)畫使用
CATransition類為應(yīng)用程序的轉(zhuǎn)場(chǎng)動(dòng)畫提供了很多可控制參數(shù),接下來(lái)我們就以幾個(gè)實(shí)例講解iOS中的CATransition轉(zhuǎn)場(chǎng)動(dòng)畫使用,需要的朋友可以參考下2016-06-06
iOS模仿電子書首頁(yè)實(shí)現(xiàn)書架布局樣式
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)類似電子書首頁(yè)效果樣式,實(shí)現(xiàn)書架布局樣式,感興趣的小伙伴們可以參考一下2016-03-03
詳解使用jquery.i18n.properties 實(shí)現(xiàn)web前端國(guó)際化
本篇文章主要介紹了使用jquery.i18n.properties 實(shí)現(xiàn)web前端國(guó)際化,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07

