[iphone] double 값을 소수점 2 자리로 반올림

22.368511과 같은 이중 값이 있습니다. 소수점 이하 두 자리로 반올림하고 싶습니다. 즉, 22.37을 반환해야합니다.

어떻게 할 수 있습니까?



답변

대부분의 언어에서와 같이 형식은

%.2f

여기에서 더 많은 예를 볼 수 있습니다.


편집 : 25.00의 경우 포인트 표시에 대해 우려하는 경우에도 이것을 얻었습니다.

{
    NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
    [fmt setPositiveFormat:@"0.##"];
    NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.342]]);
    NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.3]]);
    NSLog(@"%@", [fmt stringFromNumber:[NSNumber numberWithFloat:25.0]]);
}
2010-08-22 15:04:10.614 a.out[6954:903] 25.34
2010-08-22 15:04:10.616 a.out[6954:903] 25.3
2010-08-22 15:04:10.617 a.out[6954:903] 25


답변

아래 코드를 사용하여 소수점 이하 두 자리로 형식을 지정할 수 있습니다.

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

스위프트 4 :

let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
formatter.roundingMode = .up

let str = String(describing: formatter.string(from: 12.2345)!)

print(str)


답변

 value = (round(value*100)) / 100.0;


답변

[label setText:@"Value: %.2f", myNumber];


답변

Swift 2.0 및 Xcode 7.2 :

let pi:Double = 3.14159265358979
String(format:"%.2f", pi)

예:

여기에 이미지 설명 입력


답변

NSDecimalRound 함수를 사용할 수 있습니다.


답변

double에서 소수를 제거하려면 다음 출력을 살펴보십시오.

Obj C

double hellodouble = 10.025;
NSLog(@"Your value with 2 decimals: %.2f", hellodouble);
NSLog(@"Your value with no decimals: %.0f", hellodouble);

출력은 다음과 같습니다.

10.02
10

Swift 2.1 및 Xcode 7.2.1

let hellodouble:Double = 3.14159265358979
print(String(format:"Your value with 2 decimals: %.2f", hellodouble))
print(String(format:"Your value with no decimals: %.0f", hellodouble))

출력은 다음과 같습니다.

3.14
3