Javaのデータ型変換(自動変換と強制変換)
データ型変換は自動変換と強制変換に分かれます。自動変換は、プログラムの実行中に「静かに」実行される変換であり、ユーザーが事前に宣言する必要はありません。通常は、下位桁の型から上位桁の型への強制変換を宣言する必要があります。コード内で変換順序は制限されません。
自動データ型変換
自動変換は低位から高位の順に変換します。異なる種類のデータ間の優先関係は次のとおりです:
低-------------------------------------- --------- ------>High
byte、short、char->int ->long ->double
public class Demo { public static void main(String[] args){ int x; double y; x = (int)34.56 + (int)11.2; // 丢失精度 y = (double)x + (double)10 + 1; // 提高精度 System.out.println("x=" + x); System.out.println("y=" + y); } }実行結果:
x=45 y=56.0上記のプログラムセグメントを注意深く分析してください: 34.56 の前に int の強制型変換があるため、34.56 は 34 になります。同様に、11.2 は 11 になるため、x の結果は 45 になります。 x の前に double 型キャストがあるため、x の値は 45.0 になり、10 の前も強制的に double 型にキャストされるので、これも 10.0 になり、最終的な y の値は 56 になります。 Java データ型と変数定義
Java は厳密に型指定された言語であり、変数を宣言するときにデータ型を指定する必要があります。変数の値は、一定量のメモリ領域を占有します。変数のタイプが異なれば、占有するサイズも異なります。
float x = 223.56F; float y = 100.00f;注: 各 float 型の後ろに「F」または「f」という記号があります。この記号は、それが float 型であることを意味します。 double型の有効桁数は最大15桁です。 float 型と同様に、double の後にはフラグ「D」または「d」が続きます。例:
double x = 23.45D; double y = 422.22d; double z = 562.234;注: フラグのない浮動小数点データの場合、システムはデフォルトで double 型を使用します。 double型を使用する場合が多く、floatの精度では要求を満たすことが困難です。 さまざまなデータ型のアプリケーション例:
public class Demo { public static void main(String[] args){ // 字符型 char webName1 = '微'; char webName2 = '学'; char webName3 = '苑'; System.out.println("网站的名字是:" + webName1 + webName2 + webName3); // 整型 short x=22; // 十进制 int y=022; // 八进制 long z=0x22L; // 十六进制 System.out.println("转化成十进制:x = " + x + ", y = " + y + ", z = " + z); // 浮点型 float m = 22.45f; double n = 10; System.out.println("计算乘积:" + m + " * " + n + "=" + m*n); } }実行結果:
网站的名字是:微学苑 转化成十进制:x = 22, y = 18, z = 34 计算乘积:22.45 * 10.0=224.50000762939453実行結果からわかるように、浮動小数点データに整数のみが含まれ、小数が含まれていない場合でも、システムはそれらを自動的に追加します。コンソールに出力する場合は小数点となり、小数点以下の桁はすべて0になります。
ブール型の説明
#include <stdio.h> int main(){ int x = 100>10; int y = 100<10; printf("100>10 = %d\n", x); printf("100<10 = %d\n", y); return 0; }演算結果:
100>10 = 1 100<10 = 0しかし、Javaでは異なります。条件が true の場合は true を返し、それ以外の場合は false (ブール型) を返します。例:
public class Demo { public static void main(String[] args){ // 字符型 boolean a = 100>10; boolean b = 100<10; System.out.println("100>10 = " + a); System.out.println("100<10 = " + b); if(a){ System.out.println("100<10是对的"); }else{ System.out.println("100<10是错的"); } } }演算結果:
100>10 = true 100<10 = false 100<10是对的実際には、trueは1、falseは0に相当しますが、名前が異なり、別のデータ型になります。
Java のデータ型と変数のより詳細な分析については、PHP 中国語 Web サイトに注目してください。