Skip to Content
Javaクックブック第5版
book

Javaクックブック第5版

by Ian F. Darwin
March 2025
Intermediate to advanced
684 pages
10h 58m
Japanese
O'Reilly Media, Inc.
Book available
Content preview from Javaクックブック第5版

第5章 数字

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

5.0 はじめに

数値はあらゆる計算の基本である。配列の添字、温度、給料、格付け、その他無限のものに使われている。しかし、見た目ほど単純ではない。浮動小数点数の場合、どの程度正確なのか?乱数の場合、ランダムとはどの程度ランダムなのか。数値を含むはずの文字列では、何が実際に数値を構成するのか?

Javaには、8つの組み込み型(プリミティブ型) があり、そのうち7つは数値を表すのに使用できる。表5-1に、これらのプリミティブ型とそのラッパー(オブジェクト)型 、およびプリミティブ型を表さない2つの数値クラスを示す。8番目のプリミティブであるboolean とそのラッパーBoolean は数値ではないので、そのように扱うことはできない。CやPerlのように、数値型のサイズや精度を指定しない言語 とは異なり、移植性を目標とするJavaは、これらを正確に指定し、すべてのプラットフォームで同じであるとしていることに注意されたい。

表5-1. 数値型
内蔵タイプ オブジェクト・ラッパー 内蔵サイズ(ビット) 内容

byte

Byte

8

符号付き整数

short

Short

16

符号付き整数

int

Integer

32

符号付き整数

long

Long

64

符号付き整数

float

Float

32

IEEE-754浮動小数点(単精度)

double

Double

64

IEEE-754浮動小数点(倍精度)

char

Character

16

符号なしユニコード文字

該当なし

BigInteger

無制限

任意のサイズの不変整数値

該当なし

BigDecimal

無制限

任意サイズ・精度の不変浮動小数点値

おわかりのように、Javaにはあらゆる目的に対応する数値型が用意されている。符号付き整数には4つのサイズがあり、 さまざまな大きさの整数を表すことができる。浮動小数点数には、実数を近似するための2つのサイズがある。また、Unicode文字を表現し、演算するために特別に設計された型もある。 ここでは、プリミティブな数値型について説明する。Big 数値型についてはレシピ5.13で説明する。

ユーザ入力やテキストファイルから数値を表す文字列を読み込む場合、それを適切な型に変換する必要がある。第2列のオブジェクト・ラッパークラス はいくつかの関数を持っているが、そのうちの1つは、この基本的な変換機能を提供するもので、Cプログラマが使う関数atoi/atof ファミリーと、scanf の数値引数の代わりとなるものである。

逆に、文字列連結を使ったり、各ラッパークラス のstatic メソッドtoString(value) を使ったりするだけで、任意の数値を文字列 に変換することができる。 完全に制御したい場合は、レシピ5.5でNumberFormat とその関連クラスを使って、書式を完全に制御する方法を示している。

オブジェクト・ラッパーという名前が示すように、標準APIの多くの部分がオブジェクトで定義されているため、これらのクラスはJavaオブジェクトで数値をラップするためにも使われる。この後の"Solution "では、Integer オブジェクトを使って、int'の値をオブジェクト・シリアライゼーションを使ってファイルに保存し、後でその値を取り出すことを示している。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

グリーンなソフトウェア開発

グリーンなソフトウェア開発

Anne Currie, Sarah Hsu, Sara Bergman
AWSでのサーバーレス開発

AWSでのサーバーレス開発

Sheen Brisals, Luke Hedger

Publisher Resources

ISBN: 9798341634428Supplemental Content