私のコードでは、2つの数字があり2.555
ます。%.2f
NSLogを使用して表示しまし2.55
たが、出力は2.56です。望まない数値を四捨五入しています!ceil(double)
あることと使用されることは知っていfloor(double)
ますが、ここでは役に立ちません。
double div = a/b;
NSLog(@"DIV = %.f", div);
私のコードでは、2つの数字があり2.555
ます。%.2f
NSLogを使用して表示しまし2.55
たが、出力は2.56です。望まない数値を四捨五入しています!ceil(double)
あることと使用されることは知っていfloor(double)
ますが、ここでは役に立ちません。
double div = a/b;
NSLog(@"DIV = %.f", div);
あなたのコードを見なければ、間違いを見つけることはできません。以下のコードは、必要に応じて機能します。
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setRoundingMode:NSNumberFormatterRoundDown];
[numberFormatter setMaximumFractionDigits:2];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:2.555]];
NSLog(@"%@",numberAsString);
[numberFormatter release];
NSNumberFormatterについてはこのリンクを参照できます
これを行うにはもっと簡単な方法があると思います。私があなたを正しく理解しているなら、あなたは「div」の内容を変更しないようにしたいので、floor()を使いたくないでしょう。これが正しければ、次のことができます。
NSLog(@ "DIV =%.2f"、trunc(div * 100)/ 100);
NSLog(@ "DIV =%.2f"、floor(div * 100)/ 100);
上記は、秒の後に小数をハックしますが、表示のみです。「div」の内容は変更されていません。