0

%0.1f のようなフォーマット指定子を使用すると、標準の 4/5 分割に従って float 値が丸められるという印象を受けました (つまり、3.24 は 3.2 に丸められ、3.25 は 3.3 に丸められます)。しかし、私は期待する結果を得ていません。ここに私のテストコードがあります:

NSLog(@"%0.1f", 3.24); //Output: 3.2
NSLog(@"%0.1f", 3.25); //Output: 3.2  Expected Output: 3.3
NSLog(@"%0.1f", 3.26); //Output: 3.3

NSNumberFormatter を使用しても同じ結果が生成されます。

    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [formatter setRoundingMode: NSNumberFormatterRoundHalfUp]; //Tried with and without setting this.  Same results either way.
    [formatter setMaximumFractionDigits:1];

    NSString *numberString1 = [formatter stringFromNumber:[NSNumber numberWithFloat:3.24]];
    NSString *numberString2 = [formatter stringFromNumber:[NSNumber numberWithFloat:3.25]];
    NSString *numberString3 = [formatter stringFromNumber:[NSNumber numberWithFloat:3.26]];

    NSLog(@"Result...%@",numberString1); //Output: 3.2
    NSLog(@"Result...%@",numberString2); //Output: 3.2  Expected: 3.3
    NSLog(@"Result...%@",numberString3); //Output: 3.3

基本的なもののようです。私は何を間違っていますか?

4

0 に答える 0