• ベストアンサー

C言語の初歩的な質問です。

例えば、 ans = 23 / 31 というように代入したいのですが、この計算を10小数点以下10行で後は切り捨て(もしくは四捨五入)を行い、その値をansに代入するというようにするにはどうすればいいんでしょうか? pirntf("%.10f", 23.0 / 31.0); じゃだめなんです。 結構急いでいます。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ky072
  • ベストアンサー率60% (85/140)
回答No.1

round() か floor() を使用してはいかがでしょう。 double ans = round( (double)10000000000.0 * 23 / 31 ) / 10000000000.0; または double ans = floor( (double)10000000000.0 * 23 / 31 ) / 10000000000.0; ただし、状況によっては誤差が生じることがあるかもしれません。

moratorium08
質問者

お礼

回答ありがとうございます。 大変助かりました。

関連するQ&A