2011年8月12日金曜日

Android 本日の謎

float[] coords = {
    0.0F, 1,0F,
    1.0F, 1.0F,
    0.0F, 0.0F,
    1.0F, 0.0F,
  };
  //*/
  Log.d( TAG, "" + coords[0] + "," + coords[1] + "," + coords[2] + "," + coords[3] );
  Log.d( TAG, "" + coords[4] + "," + coords[5] + "," + coords[6] + "," + coords[7] );


これに対して、出力されるログが

  0.0,1.0,0.0,1.0
  1.0,0.0,0.0,1.0

なんですか?コレ?

ちなみに、これの代わりに変数の計算式で初期化( x, y + h 等)すれば、正しい値のログが出力される。


float one = 1.0F;
  float zero = 0.0F;
  float [] coords = {
    zero, one,
    one, one,
    zero, zero,
    one, zero,
  };
  Log.d( TAG, "" + coords[0] + "," + coords[1] + "," + coords[2] + "," + coords[3] );
  Log.d( TAG, "" + coords[4] + "," + coords[5] + "," + coords[6] + "," + coords[7] );


これに対して、出力されるログが

  0.0,1.0,1.0,1.0
  0.0,0.0,1.0,0.0


さっぱりわかんねぇ、なんだコレ~?

追記:バグレポート書いた

追記 2011/11/14:バグレポートに返信があった。1行目の「,」バグでしょって、突っ込まれた…。こんな事に気がつかなかったなんて…ちょー恥ずかしい… orz
 この恥ずかしさ、じわじわくるな…

0 件のコメント: