小数点后的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; (...) 

我希望能够让firstStep返回小数点后面的两位数,即使它们是.00或。* 0。 例如,如果323.390被input到文本字段“textFieldThree”中,它将被处理并返回到3233.90的文本字段。 目前显示为3233.9。

任何帮助将不胜感激。

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]; 

Simples

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

(或类似的东西 – 对不起,我现在在PC上,所以不能testing这个)