2017-07-16 5 views
0

次のコードは、Javaデフォルトは

float variable = 123.4 

でコンパイルエラーになったで、それがために浮動小数点リテラル値のデフォルトはであるという事実でありますDoubleデータ型。したがって、この問題を解決するためには、事前にfloatにリテラル値をキャストするか、変数をdoubleとして宣言する必要があります。 わかっているように、整数リテラル値のデフォルトは整数データ型です。ただし、コンパイラエラーは、我々が

byte variable = 123 

以下の例のようにバイト変数を宣言するとき、私たちは整数リテラルのデフォルトの場合は123 にバイトデータ型をキャストする必要はありません理由を知りたくありません値は整数です。

+2

'float variable = 123.4f'と書いてもキャストする必要はありません – janos

+3

' 123'を 'byte 'として格納する精度が失われていません – khelwood

+0

私は@janosに同意します。しかし、リテラルを初期化するときは大文字にします。 –

答えて

0

整数型の値byte、short、int、およびlongは、intのリテラルから作成できますが、値は変数の型に適合します。

hereの情報を取得できます。

ので、この:123はバイトに収まるよう

byte variable = 123; 

は大丈夫です。

しかしbyte variable = 1000;

はバイトに収まらない1000としてコンパイルされません。

+0

I '123.4D'も浮動小数点数に適合すると考えてください。 – saka1029

+0

@ saka1029 floatを指定せず、 '123.4D'はintリテラルではありません。 – davidxxx

+0

このfloat変数= 1.4のような浮動小数点リテラル値を宣言できることは間違いありません。1.4は浮動小数点データ型に完全に当てはまりますが、コンパイラエラーをスチールし、浮動小数点データ型に1.4をキャストする必要があります。ジャワ – moha

関連する問題