• ベストアンサー

算術演算子にて、整数での除算処理は商になる?

JAVAのプログラミングを勉強しているのですが、JAVAの算術演算子にて、 参考書に「除算演算子は割り算を行うものだが、整数同士の割り算を用いると「商」を計算する」と書かれているのですが、これはどういう意味でしょうか? 整数同士の割り算をすると、小数点ではなく四捨五入をした整数値が出力されるのでしょうか?

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

  • ベストアンサー
回答No.5

>回答No.4 amanojaku1 データ型の詳細は下記サイトを参照して下さい。 データ型 https://www.javadrive.jp/start/var/index4.html 整数型演算デフォルトは「int:32ビット整数 -2147483648~2147483647」ですので、「int:32ビット整数 -2147483648~2147483647」の範囲を超える整数型演算をしたい場合には注意が必要です。 long hoge = 2147483647+1; ↑これはエラーになります、分かりやすく書くと下記のようになります。 long hoge = (int)2147483647+(int)1; ↑(レジスターの)演算が「int:32ビット整数 -2147483648~2147483647」の範囲を超えエラーになります。 前述のサイトには下記のように「L」を付与して「long」型にすれば良い事が分かります。 >そこでint型を越えるlong型の範囲の数値をプログラムの中で記述する場合は、数値の最後に「L」または「l」を付けます。

その他の回答 (4)

回答No.4

>質問の「整数同士の割り算」は「整数型同士の割り算」の誤りではないでしょうか? >変数の宣言でint、byte、short等で宣言した変数同士で除算したときは小数を扱えないので余りが捨てられ商は整数になるはずです。 bunjiiさんは変数の事を言ってます、Javaの場合 整数の定数は整数型になります。 つまりJAVA以外では整数の定数でも実数型と扱われる場合もある訳です。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>整数同士の割り算をすると、小数点ではなく四捨五入をした整数値が出力されるのでしょうか? JAVAに限らずプログラミングの常識として演算結果を代入する変数のタイプによって結果が異なります。 質問の「整数同士の割り算」は「整数型同士の割り算」の誤りではないでしょうか? 変数の宣言でint、byte、short等で宣言した変数同士で除算したときは小数を扱えないので余りが捨てられ商は整数になるはずです。(代入先がfloatの場合でも正数部分が代入されると思う) 小数点以下を四捨五入や切捨てではなく小数点以下を計算せずに余りを捨てると考えてください。

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.2

3/2=1 3.0/2=1.5 となります。

  • hiodraiu
  • ベストアンサー率15% (451/2846)
回答No.1

「除算」や「商」って言葉は算数と同じですが何処が疑問ですか? 整数同士での除算を行えば結果は整数型になります。小数点以下は切り捨てです。四捨五入なんて小賢しいことはしません。 こういうことが書かれたドキュメントを見ずに勉強してるのですか。初心者のうちは、ちゃんとしたドキュメントを見て勉強しないと、駄目なプログラマーになっちゃいますよ。

関連するQ&A