私は小さな問題に遭遇しました。計算に使用されるcの余分な小数点以下の桁数を削除しようとしています。
たとえば、67.98345の場合、67.98にします。
しかし、printfステートメントだけではありません。ダブルは実際には67.98345ではなく67.98である必要があります
@mvpの答えは大丈夫ですが、小さな問題があります。x が double の大きさの最大値に近い場合、乗算の中間値が double をオーバーフローする可能性があります。この問題を解決する別の方法は次のとおりです。
double intpart, fracpart;
fracpart = modf(x, &intpart);
x_rounded = intpart + round(fractpart * 100) / 100;
これは最も近い値に丸められます:
double x_rounded = round(x*100)/100;
完全を期すために、これらは切り捨てまたは切り上げられます。
double x_rounded_down = floor(x*100)/100;
double x_rounded_up = ceil (x*100)/100;