2011-08-10 121 views
0

我有一個浮點值iPhone NSNumberFormatter小於1倍的值

i.e. 0.0467 

想有一個字符串 05 怎樣才能得到呢?排除小數點(。)。

更確切地說,如果我有一個浮點數,我想把它分成整數和小數,最好分成兩個字符串部分。

+0

你想圓了浮點值? – Akshay

回答

1
fDecimal = 0.04567; 
NSString * strDecimal = [NSString stringWithFormat:@"%0.2f", fDecimal]; 
NSString * strDecimalPart = [strDecimal substringWithRange:NSMakeRange(2, 2)]; 
0

你正在尋找被稱爲小數位數設置:

NSNumberFormatter* f = [[[NSNumberFormatter alloc] init] autorelease; 
[f setMaximumFractionDigits:2]; 

可選擇使用-[NSNumberFormatter setRoundingMode:]指定四捨五入應該怎麼做。

+1

你認爲,[f stringFromNumber:[NSNumber numberWithFloat:0.0467]將返回05嗎?我認爲它會返回「0.05」。我想要小數點沒有小數點。 – karim

+0

@dumbhead是的。爲了只獲得分數,我會在'NSString'上使用substring方法。或者可能是'[[numberString componentsSeparatedBy:@「。」] lastObject]' – PeyloW

+0

我有點擔心@「。」的本地化,在某些國家它可能是「,」。 – karim

1

通過以下操作,您將獲得所需的結果。

float floatValue = 0.0467; 
    NSString *str = [NSString stringWithFormat:@"%.2f", floatValue]; 
    str = [str stringByReplacingCharactersInRange:NSMakeRange(0, 2) withString:@""]; 
    NSLog(@"%@", str); // Result will be: 05 
+0

謝謝。那就是我現在正在做的事情。該方法的一個變種,[strTotalDecimal substringWithRange:NSMakeRange(2,2);不包括前導零(0)和小數分隔符(./,),不管它是什麼! – karim