CPNumberFormatter setMinimumFractionDigits: support.

This commit is contained in:
Alexander Ljungberg
2012-08-04 00:55:41 +01:00
parent 055dd7229e
commit b279a92e4c
2 changed files with 21 additions and 0 deletions
+10
View File
@@ -59,6 +59,7 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain;
CPString _perMillSymbol @accessors(property=perMillSymbol);
CPString _groupingSeparator @accessors(property=groupingSeparator);
CPNumberFormatterRoundingMode _roundingMode @accessors(property=roundingMode);
CPUInteger _minimumFractionalDigits @accessors(property=minimumFractionalDigits);
CPUInteger _maximumFractionalDigits @accessors(property=maximalFractionalDigits);
CPDecimalNumberHandler _numberHandler;
@@ -95,6 +96,9 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain;
preFractionLength = [preFraction length],
commaPosition = 3;
while (fraction.length < _minimumFractionalDigits)
fraction += "0";
// TODO This is just a temporary solution. Should be generalised.
// Add in thousands separators.
if (_groupingSeparator)
@@ -149,6 +153,12 @@ CPNumberFormatterRoundHalfUp = CPRoundPlain;
SET_NEEDS_NUMBER_HANDLER_UPDATE();
}
- (void)setMinimumFractionDigits:(CPUInteger)aNumber
{
_minimumFractionalDigits = aNumber;
SET_NEEDS_NUMBER_HANDLER_UPDATE();
}
- (void)setMaximumFractionDigits:(CPUInteger)aNumber
{
_maximumFractionalDigits = aNumber;
+11
View File
@@ -78,4 +78,15 @@
[self assert:@"0.4" equals:[numberFormatter stringFromNumber:[CPDecimalNumber decimalNumberWithString:@"0.4467"]]];
}
- (void)testSetMinimumFractionDigits_
{
var numberFormatter = [CPNumberFormatter new];
[numberFormatter setNumberStyle:CPNumberFormatterDecimalStyle];
[numberFormatter setMinimumFractionDigits:3];
[numberFormatter setMaximumFractionDigits:4];
[self assert:@"1.000" equals:[numberFormatter stringFromNumber:[CPDecimalNumber decimalNumberWithString:@"1"]]];
[self assert:@"1.100" equals:[numberFormatter stringFromNumber:[CPDecimalNumber decimalNumberWithString:@"1.1"]]];
[self assert:@"0.4467" equals:[numberFormatter stringFromNumber:[CPDecimalNumber decimalNumberWithString:@"0.4467"]]];
}
@end