すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

javaで割り算するとき

kyori(変数です)/60

のような書き方をしますが、もしこの変数kyoriが150だとすると、プログラム中では答は「2」となりますよね?
(intの場合で、doubleだと2.5と回答されるでしょうが、今はint型の問題としてください)

120/60のように普通に割り切れて「2」となる場合は構わないのですが、150/60で余りが1出たときに、商に1足して「3」とするにはどうすれば良いでしょうか?

上記の例ですと、変数kyoriに代入したキロメートルを時速60キロメートルで走る場合何時間かかるかというプログラムで、回答を整数で出したいのです


java自体よくわからず質問もあいまいで申し訳ないですが、どなたか教えて下さい

  • 質問者:するめ
  • 質問日時:2009-07-22 13:13:18
  • 0

>150/60で余りが1出たときに、商に1足して
>
「150/60で余りが出たときに、商に1足して」の間違いですよね?
要は「大きい方の整数に丸めたい。」という質問だと読み解きました。

色々やり方はありますが、この様にするのが簡単だと思います。

int jikan = kyori / 60;
if (kyori % 60 > 0) {
jikan++;
}

「kyori % 60」で、kyoriを60で割った時の「余り」が出ます。
(プログラムの世界で「余り」を求める場合、「%」や「mod」を使って計算する。)
例えば、150 % 60 = 30となります。
この「余り」が0より大きい時に、「jikan」に1を足します。

これでのお望みの挙動になると思います。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

無事解決しました!ありがとうございます!!

並び替え:

int同士の除算は結果もintで返されてしまいます。(小数点以下は切り捨て)

商をdoubleで導き出す事が一番だと思います。

  • 回答者:匿名 (質問から44分後)
  • 0
この回答の満足度
  
参考になりました。回答ありがとうございました。
お礼コメント

だとは思ったのですが、一応intを使おうとしていますので・・・すみません

関連する質問・相談

Sooda!からのお知らせ

一覧を見る