NSDecimalNumber zeros following decimal point (iPh

2019-03-21 06:27发布

I have the following code

(...)
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;
(...)

I would like to be able to have firstStepReturn have 2 digits following the decimal point even if they are .00 or .*0. For example, if 323.390 was inputted into the textfield "textFieldThree", it would be processed and returned to the textfield as 3233.90. At the moment, it is displaying as 3233.9.

Any help would be greatly appreciated.

2条回答
相关推荐>>
2楼-- · 2019-03-21 06:53

Why not use textFieldThree.text=[NSString stringWithFormat:@"%.2f",[fieldOneDN floatvalue]];

(or something similar - sorry I'm on a PC right now so can't test this)

查看更多
Root(大扎)
3楼-- · 2019-03-21 07:06

NSDecimalNumber subclasses NSNumber so you just need to use NSNumberFormatter


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

Simples

查看更多
登录 后发表回答