0

可以说我的字符串值在将其转换为 NSNumber 后如下 12345.12 它作为 12345.1223122 但我想要字符串中的准确数字有没有办法实现它。我现在正在使用的代码

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
    [f setNumberStyle:NSNumberFormatterCurrencyStyle];
    NSNumber * myNumber = [f numberFromString:aString];
    [f release];
4

4 回答 4

3

如果您正在处理货币类型的数字(只是您使用货币样式格式化程序的猜测),您可能想要使用NSDecimalNumber. 与标准浮点类型不同,十进制数使用以 10 为底的指数,因此在处理货币问题时,您总是能获得预期的准确度——即它们与使用整数然后在以 10 为底的移动小数点相同表示。

于 2012-10-10T04:34:14.910 回答
1

做这个:

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setMaximumFractionDigits:2];
NSNumber * myNumber = [f numberFromString:aString];
[f release];
NSLog(@"%@",myNumber);
于 2012-10-10T04:25:33.590 回答
1

试试这样...

 NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber * myNumber=[NSNumber numberWithFloat:[[f numberFromString:aString] floatValue]];

我想这会对你有所帮助。

于 2012-10-10T04:47:00.447 回答
0

这是几年,但这有效:

double d = [@"123.45" doubleValue];
NSNumber* n = [NSNumber numberWithDouble:d];
于 2019-12-04T20:13:29.823 回答