具有浮点值的NSNumberFormatter和SpellOutStyle

时间:2009-06-10 00:31:56

标签: iphone objective-c

我正在尝试使用NSNumberFormatter的SpellOutStyle渲染浮点值,但结果并不令人满意,到目前为止我还没有找到解决方案。问题是,当给定一个浮点值如3.2时,NSNumberFormatterSpellOutStyle会将其呈现为:“三点二零零零零零零四七六八三七二”。

使用SpellOutStyle时,设置roundingMode或maximumFractionDigits属性似乎没有任何效果。

以下是我运行代码的示例:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
NSNumber *numberValue = [NSNumber numberWithFloat:3.2];

NSLog(@"Number: %@", [numberFormatter stringFromNumber:numberValue]);
// Outputs three point two zero zero zero zero zero zero ...

[numberFormatter release];

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题是花车不精确。尝试将第3行更改为:

NSNumber *numberValue = [NSNumber numberWithDouble:3.2];