日々のログ

日々にしたい

Javaの自動型変換について

Javaの自動型変換について
いつもお世話になっているサイトを参考に書いていきたい。

www.javadrive.jp


Github Gistを扱えるようになったため今後はGistで見やすくしていきたいと思う。

自分用ざっくり解説
リテラル…何らかの値、文字列、数値など
オペランド…式の中の演算子以外の変数または値のこと

基本的にはPHPと同じような動作をしています。
違いがあるのは最初に変数の型を決める所でしょうか。
PHPでは整数を整数で割って小数点になるとき、自動的に出力結果をint型(整数)からdouble型(浮動小数点)に変換して出力します。

gist.github.com

Javaでは整数を整数で割って小数点になるとき、自動的にint型からdouble型に変換されないため整数部分のみが出力され切り捨てになります。

gist.github.com
このような違いがあるのでごっちゃになっていると痛い目をみます。みました。

Javaでは先にint型を宣言し、整数以外の値は受け付けません。これにより小数点以下の値は切り捨てられる仕様になっているため、この場合は2に変換されます。
小数点以下の数値も出力したい場合は最初からdouble型で宣言をする必要があります。
double型で宣言した場合はint型のリテラルでも小数点を含めた結果として出力される。

gist.github.com

自動変換により思いもよらない動きになりプログラムの動作がおかしくなることもあるため意識していきたい。

 

07/09 文章修正