Нули NSDecimalNumber после десятичной точки (iPhone SDK)

У меня есть следующий код

(...)
numberStyle = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain
                                                                     scale:2
                                                          raiseOnExactness:NO
                                                           raiseOnOverflow:NO
                                                          raiseOnUnderflow:NO
                                                       raiseOnDivideByZero:NO];

strThree = textFieldThree.text;
strThree = [strThree stringByReplacingOccurrencesOfString:@"." withString:@""];

fieldOneDNa = (NSDecimalNumber *)[NSDecimalNumber decimalNumberWithString:strThree];
oneHundred = (NSDecimalNumber *)[NSDecimalNumber decimalNumberWithString:@"100"];
fieldOneDN = [fieldOneDNa decimalNumberByDividingBy:oneHundred
                                       withBehavior:numberStyle];

firstStepReturn = [fieldOneDN stringValue];
textFieldThree.text = firstStepReturn;
(...)

Я хотел бы смочь иметь firstStepReturn, имеют 2 цифры после десятичной точки, даже если они.00 или.*0. Например, если бы 323.390 был введен в текстовое поле "textFieldThree", то оно было бы обработано и возвращено к текстовому полю как 3 233,90. В данный момент это отображается как 3 233,9.

Любая справка значительно ценилась бы.

5
задан Chris 7 June 2012 в 23:40
поделиться

2 ответа

Почему бы не использовать textFieldThree.text=[NSString stringWithFormat:@"%.2f",[fieldOneDN floatvalue]];

(или что-то подобное - извините, что я сейчас на компьютере, так что не могу это проверить)

.
4
ответ дан 18 December 2019 в 07:09
поделиться

NSDecimalNumber подклассов NSNumber, так что вам просто нужно использовать NSNumberFormatter


 NSDecimalNumber * dn = [NSDecimalNumber decimalNumberWithString:@"1234.5"];
 NSNumberFormatter * nf = [[NSNumberFormatter alloc] init];
 [nf setMinimumFractionDigits:2];
 [nf setMaximumFractionDigits:2];
 NSString *ns  = [nf stringFromNumber:dn];

Simple

.
18
ответ дан 18 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: