我正在尝试使用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];
有什么想法吗?
答案 0 :(得分:2)
问题是花车不精确。尝试将第3行更改为:
NSNumber *numberValue = [NSNumber numberWithDouble:3.2];