[英]NSNumberFormatter and SpellOutStyle with Float Values
I am trying to render a float value using NSNumberFormatter's SpellOutStyle, but the results are unsatisfactory, and I haven't been able to find a solution so far. 我正在尝试使用NSNumberFormatter的SpellOutStyle呈现一个float值,但是结果并不令人满意,到目前为止,我还没有找到解决方案。 The issue is, when given a float value such as 3.2, NSNumberFormatterSpellOutStyle renders it as something like this: "three point two zero zero zero zero zero zero four seven six eight three seven two".
问题是,当给定浮点值(例如3.2)时,NSNumberFormatterSpellOutStyle会将其呈现为以下形式:“三点二零零零零零零零四七六八三七二”。
When using the SpellOutStyle, setting the roundingMode or maximumFractionDigits properties don't seem to have any effect. 使用SpellOutStyle时,设置roundingMode或maximumFractionDigits属性似乎没有任何效果。
Here is a sample of how I am running the code: 这是我如何运行代码的示例:
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];
Any ideas? 有任何想法吗?
The problem is that floats are imprecise. 问题是浮子不精确。 Try changing line 3 to:
尝试将第3行更改为:
NSNumber *numberValue = [NSNumber numberWithDouble:3.2];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.