2

私のアプリでは、金額の値(フロート)を受け入れて保存しています。金額フィールドでは、ユーザーは小数点以下の桁数を入力できます。しかし、それを読んで保存すると、小数点以下2桁になるはずです。このシナリオは私のコードで適切に機能します。しかし問題は、ユーザーが値 2.468 を入力すると、2.47 として保存されることです。ただし、ユーザー入力が 2.245 の場合、この場合は 2.25 として保存する必要がありますが、2.24 としてのみ保存されます。

そして私のコードは

AmountValue = [NSString stringWithFormat:@"%f",[AmountTxt1.text floatValue]];
 float Rate_int = [AmountValue floatValue];

NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *str1 = [NSString stringWithFormat:@"%@",[currencyFormatter stringFromNumber:[NSNumber numberWithFloat:Rate_int]]];

TotalAmtTxt.text = str1;
4

4 に答える 4

1
double Rate_int1 = [input doubleValue];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setRoundingMode: NSNumberFormatterRoundHalfUp];
[formatter setMaximumFractionDigits:2];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithDouble:Rate_int1]];

NSString numberString には、丸められた値があります。

于 2013-09-05T09:52:43.410 に答える