A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
個数の計数など割り切った数値を扱う場合は整数を、
超越関数の演算などの区切りのない連続した数値を扱う場合は実数を使います。
以下の例で、上の円の動きのように数値を扱う場合は整数を、
下の円の動きのように数値を扱う場合には実数を使うことになるでしょう。
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.awt.geom.*;
class circlecanvas extends Canvas {
VolatileImage OSI = null;
Graphics2D G;
AffineTransform BT;
double Si;
public circlecanvas() { super(); };
public void Start() {
OSI = createVolatileImage(540, 80);
G = (Graphics2D)OSI.getGraphics();
G.setColor(Color.RED);
G.setTransform(new AffineTransform());
G.scale(20.0, 20.0);
BT = G.getTransform();
Si = 0.0;
(new Timer()).schedule(new MoveTask(), 1000, 100);
};
public void paint(Graphics g) {
if (OSI != null) g.drawImage(OSI, 0, 0, getWidth(), getHeight(), this);
};
public void update(Graphics g) { paint(g); };
class MoveTask extends TimerTask {
public void run() {
double x = 12.5 * Math.sin(Si) + 12.5;
G.setColor(Color.WHITE);
G.fillRect(0, 0, 540, 80);
G.setColor(Color.RED);
G.setTransform(BT);
G.translate(x, 2.0);
G.fillOval(0, 0, 2, 2);
G.setTransform(BT);
G.translate((int)x, 0);
G.fillOval(0, 0, 2, 2);
Si += 0.1;
repaint();
};
}
}
public class intdouble {
public static void main(String args[]) {
Frame MF = new Frame("int and double");
MF.setSize(550, 100);
circlecanvas CC = new circlecanvas();
MF.add(CC, BorderLayout.CENTER);
MF.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); };
});
MF.setVisible(true);
CC.Start();
};
}
No.4
- 回答日時:
int:32bitの整数
double:64bitの不動小数点数
範囲は#3の方の仰っている通りです。
"単精度"、"倍精度"と表現をしていることもあるようです。
No.3
- 回答日時:
int >integer 整数型(-2147483648~2147483647)
double >倍精度浮動小数点型(-
1.7976931348623157E+308~+1.7976931348623157E+308)
No.1
- 回答日時:
簡単ですよ。
「小数点が付くか、つかないか」です。たとえば、ホームページのアクセス回数なんていうのは
int型で定義するのが普通です。0回、1回、2回・・・
アクセス回数0.3回!なんていいませんよね。
±にかかわらず、小数点が付かないのが「整数」。
逆に身長や体重はdouble型やfloat型で定義します。
“45.6kg”や“178.5cm”など小数点
がつくものが「実数」です。
どうして「数値型」という1つの型にまとめないのかは
内部処理の関係でして、双方メリットとデメリットが。
整数型(int系)は数値をそのまんま記憶してます。
そのため正確に値を記憶できますが覚えられる範囲が
非常に狭かったりします。(-32768~+32767など。
Javaのint型はこの何倍も大きいですが、やっぱり狭い)
実数型(double系)は数値を拡大or縮小して記憶しています。
そのために記憶している値が実際の値と微妙に違う、
「誤差」が発生するのです。累積するとかなりの
違いになってしまうため、金融システムなどでは
国際法で明確に定義してあります。
実際、実数型では「-1」を正確に記憶できません。
その代わり、覚えられる桁数がとても大きいのです。
int型:-2147483648 ~ 2147483647 = 約10桁
double型:
.79769313486232e308 ~ .79769313486232e308
=約308桁
double型はint型の2倍のメモリを使いますが、
桁数は2倍どころじゃないですね。
このような点を理解して、プログラムする値が
どんな数値でどれぐらいの範囲に収まるのかを考えて
使い分けましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# (C言語)めちゃくちゃな値になってしまいます。 5 2022/08/13 11:55
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 数学 数学の解法について こんばんは。最近数学の問題を解いています。証明問題を解いたのですが、解答とアプロ 4 2022/09/11 23:22
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# C言語のマクローリン展開ローラン展開のコードについて 3 2022/12/15 14:45
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
べき乗
-
実数からの小数部の取得
-
0dの意味を教えてください
-
JAVAのプログラムで、2乗計算...
-
Javaで何パーセント%かを表示...
-
doubleで入力するには?
-
Javaによる利率計算の実装方法
-
面積や角度を出力するプログラム
-
java のfor文について質問です。
-
分を表す数値(int型)を、小数...
-
double型変数値の整数部分のみ...
-
System.out.printlnの意味がよ...
-
C言語のポインターに関する警告
-
ループ処理の際、最後だけ","を...
-
eclipseに記述したjavaファイル...
-
System.err. printlnとSystem.o...
-
ダブルクォーテーションを含む...
-
[JAVA]try 内の変数を外で!?
-
Java配列でNullPointerExceptio...
-
javaで質問です。 文字列2023/2...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0dの意味を教えてください
-
Javaで何パーセント%かを表示...
-
実数からの小数部の取得
-
べき乗
-
double型変数値の整数部分のみ...
-
JAVAのプログラムで、2乗計算...
-
printfでのエラーがわからない...
-
doubleとintの違い
-
java のfor文について質問です。
-
分を表す数値(int型)を、小数...
-
99.98+0.01の誤差
-
面積や角度を出力するプログラム
-
ダイアログベースの3次Spline...
-
四捨五入をするメソッドを実装...
-
Javaのeval関数処理
-
最大値を求めるプログラム
-
掛け算演算を使わない掛け算
-
少数50桁以上を表示するには
-
javaで1.8x10の308乗÷...
-
double を すべて bigdecimal
おすすめ情報