2011-08-10 123 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