価格を 45.50 のようにフォーマットしたいのですが、45.00 のような価格は望んでいません。どうすればこれを回避できますか?
2459 次
5 に答える
1
これを行う:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];
NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:22.368511]];
NSLog(@"Result...%@",numberString);//Result 22.37
今、このように不要なトレイル:
NSString* CWDoubleToStringWithMax2Decimals(double d) {
NSString* s = [NSString stringWithFormat:@"%.2f", d];
NSCharacterSet* cs = [NSCharacterSet characterSetWithCharacterInString:@"0."];
NSRange r = [s rangeOfCharacterInSet:cs
options:NSBackwardsSearch | NSAnchoredSearch];
if (r.location != NSNotFound) {
s = [s substringToIndex:r.location];
}
return s;
}
于 2012-09-04T12:08:06.743 に答える
0
INPUT : 12.74 OR 12.745
NSString *inputString=[NSString string];
inputString=[NSString stringWithFormat:@"%.4g",12.74f];
NSLog(@"inputString : %@ \n\n",inputString);
出力:
inputString : 12.74
INPUT : 12.00 OR 12.000
NSString *inputString=[NSString string];
inputString=[NSString stringWithFormat:@"%.4g",12.00f];
NSLog(@"inputString : %@ \n\n",inputString);
出力:
inputString : 12 UPDATED ANSWER: 彼のコメントの質問について
入力:12.30
ここで、彼は UILabel のようないくつかの UI でこの値を表示しようとしていると仮定します.... 計算ではありません。
NSString *inputString=[NSString string];
inputString=[NSString stringWithFormat:@"%.4g",12.30f];
NSArray *arr=[inputString componentsSeparatedByString:@"."];
if ([arr count] >= 2) {
NSString *secondStr=[arr objectAtIndex:1];
if ([secondStr length]<2) {
inputString=[NSString stringWithFormat:@"%@0",inputString];
}
}
NSLog(@"inputString : %@ \n\n",inputString); 出力:
入力文字列: 12.30
于 2012-09-04T12:13:16.063 に答える
0
float myOriginalPrice = 45.50;
CGFloat mod = fmod(myOriginalPrice, 1);
if (mod == 0){
mod = (int)myOriginalPrice;
NSLog(@"%.0f", mod);
} else {
NSLog(@"%f", myOriginalPrice);
}
于 2012-09-04T12:08:41.303 に答える