死にたくないのでJAVAを書く

javaぐらい書けないと死ぬしか無い様な気がする。
フレームワークって何か分からんからまずごく基本的なところは使える様になろうと思う。
で、float/doubleあたりをまず実験してみた。floatが精度云々ってのがずっと疑問だった。
こういう実験初めてだったので
結果としてはちょっと驚いたってところ。

public static void main(String[] args) {
		System.out.println("float      double          int");
		float x = 0.0f;
		double y = 0.0d;
		for (int i = 0; 10000000 >= i; x += 0.0000001f, y += 0.0000001d, i++) {
			if (i % 1000000 == 0) {
			System.out.printf("%9.7f   %9.7f    %9.7f \n", x, y,
					(float) i / 10000000);
			}
		}

float double int
0.0000000 0.0000000 0.0000000
0.0990605 0.1000000 0.1000000
0.2013732 0.2000000 0.2000000
0.2977269 0.3000000 0.3000000
0.3871338 0.4000000 0.4000000
0.4765408 0.5000000 0.5000000
0.5879304 0.6000000 0.6000000
0.7071397 0.7000000 0.7000000
0.8263490 0.8000000 0.8000000
0.9455582 0.9000000 0.9000000
1.0647675 1.0000000 1.0000000

まぁ誤差誤差。誤差すごいけど。
で、stepを1/10してみると。

float double int
0.0000000 0.0000000 0.0000000
0.0921072 0.1000000 0.1000000
0.2082261 0.2000000 0.2000000
0.2500000 0.3000000 0.3000000
0.2500000 0.4000000 0.4000000
0.2500000 0.5000000 0.5000000
0.2500000 0.6000000 0.6000000
0.2500000 0.7000000 0.7000000
0.2500000 0.8000000 0.8000000
0.2500000 0.9000000 0.9000000
0.2500000 1.0000000 1.0000000

floatがねじ切れてる。
びびるわ。ちゃんと型に気をつけて使わないといけないんだなぁ。
エラーが出てないからfloatに代入できる精度以下になってるとかじゃ無いと思うんだけど。。。よくわかんない。コレがfloat演算の誤差のみによるものだとして思考停止してみる。
ともかく型に気をつけようと思った。こういうのってvbとかcとかでも一緒だよなぁ。
どうでもいいけどやっぱりbeansよりeclipseの方がごりごり書きやすい。仕事で使うならどっちなんだろうかと、それは知らない。