小数点后的NSDecimalNumber零(iPhone SDK)

Chr*_*ris 5 nsdecimalnumber ios

我有以下代码

(...)
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;
(...)
Run Code Online (Sandbox Code Playgroud)

我希望能够让firstStepReturn在小数点后面有2位数,即使它们是.00或.*0.例如,如果323.390被输入到文本字段"textFieldThree"中,它将被处理并返回到文本字段3233.90.目前,它显示为3233.9.

任何帮助将不胜感激.

And*_*iih 18

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];
Run Code Online (Sandbox Code Playgroud)

Simples


And*_*iih 4

为什么不使用textFieldThree.text=[NSString stringWithFormat:@"%.2f",[fieldOneDN floatvalue]];

(或类似的东西 - 抱歉我现在在电脑上,所以无法测试这个)