sixty-life

還暦を迎えた今、独学でプログラミング学習をする日々の記録

いろいろなデータ型③浮動小数、理論値、文字

 

基礎からのJava 改訂版

Part 02 Chapter 06(P.84)

浮動小数

小数を扱う時のデータ型

<double> 特に理由がなければ通常 double を使う。(範囲が広く精度が細かい)

<float> 膨大な個数のデータを扱う時

 

浮動小数リテラル

double a = 1.2;

普通に小数点つきの数字を使う

 

double型かfloat型かを明示的に示す場合は数字の後ろにd、fをつける。d=double,

f= float

double a = 1.2d;
float b = 1.2f;

数字の後のd、f(大文字でも可)を省略した場合はdouble型とみなされる。

 

誤った例:1.2はdoubleリテラルなのでfloatに代入できない

float b = 1.2;

 

浮動小数も整数同様に算術演算子を使って計算できる。

double a = 4.3 * 1.02;

 

無限大と非数

小数のデータ型には、無限大と非数という特別な値が用意されている。整数の場合、0で割ったときは例外がスローされるが、小数の場合は無限大の数を返すことになっている。無限大には正と負がある。

例:

public class Renshu_ori_2 {
public static void main(String args) {

System.out.println(1.0 / 0.0);
System.out.println(-1.0 / 0.0);

}
}

Infinity=無限

  datatype java Renshu_ori_2

Infinity

-Infinity

 

計算結果が節絵な場合(計算できない場合)びは非数を返すことになっている。

public class Renshu_ori_2 {
public static void main(String args) {

System.out.println(1.0 % 0.0);
System.out.println(0.0 / 0.0);
System.out.println(Math.sqrt(-1.0));
}
}

NaN=Not a Number

  datatype java Renshu_ori_2      

NaN

NaN

NaN

 

論理値

論理値とはYesかNoか、真か偽かの二者択一を表すデータ型。真偽値ともいう。データ型はboolean(ブーリアン

二者択一なので値の範囲はTrueかfalseの2つしかない。リテラルもTrueかfalseを記述する。

boolean a = true;
boolean b = false;

boolean型は論理演算、if文などとよく使われる。

 

文字

文字とは単一の文字を表す。文字列ではない!

文字のデータ型は char

charのリテラルは'(シングルクォーテーション)で囲んだ1つの文字で表す。

public class Renshu_ori_2 {
public static void main(String args) {
char a = 'A';
char b = 'あ';
System.out.println(a);
System.out.println(b);
}
}

  datatype java Renshu_ori_2      

A

 

複数の文字をを記述するとコンパイルエラーになる。

public class Renshu_ori_2 {
public static void main(String args) {
char b = 'あい';
System.out.println(b);
}
}

  datatype javac Renshu_ori_2.java

Renshu_ori_2.java:3: エラー: 文字リテラルが閉じられていません

        char b = 'あい';

                 ^

Renshu_ori_2.java:3: エラー: 文字リテラルが閉じられていません

        char b = 'あい';

                    ^

Renshu_ori_2.java:3: エラー: 文ではありません

        char b = 'あい';

                   ^

エラー3個

 

¥uで始まる4桁の16進数で記述することもできる。

Unicodeユニコード)という文字コードの番号で「あ」を表すのが3042。

しかし「¥」では当環境ではエラーになるので「 \ 」バックスラッシュで記述した。

MacのJISキーボードの場合、英数でoptionキー+¥で入力できます)

public class Renshu_ori_2 {
public static void main(String[] args) {
char c = '\u3042'; // Unicodeで「あ」を表す
System.out.println(c);
}
}

  datatype java Renshu_ori_2      

 

なお、

文字リテラルの中の¥(円マーク)は¥という文字ではなくエスケープシーケンスという特殊な文字を表す書き方です。

エスケープシーケンス

説明

¥n

改行

¥r

復帰

¥t

タブ

¥b

バックスペース

¥u

16シンスUnicode文字

¥’

単一引用符(シングルクォーテーション)

¥”

二重引用符(ダブルクォーテーション)

¥¥

文字の¥

 

このエスケープシーケンスはシングルクォーテーションだけでなくダブルクォーテーションで囲まれた文字の中でも利用できます。

 

本日はここまで。

学習テキスト

基礎からのJava 改訂版