9/21 修正メモ
1.ファイルから文字列を読み込み
2.int型に変換
3.余りを求める(変数%100とかで) ※double型で余りを求めるのが大変
4.結果をdouble型に変換
という式を使っていた。
w = (double)((int)j % 10000 / 100);
※
w:double
j:文字列(char *)
上記の場合、文字列→intへの変換が正常に行われない場合がある
(半分くらいはうまくいく)
原因は定かでないが、文字列に数字が入り込み、別の数値に変わる様子。
このせいで0が48や24や-92とかになった。
正しくは
w = (double)(atoi(j) % 10000 / 100);
っぽい
原理はともかく上記で動いたのでヨシ!
しかし、すぐ上にも同じ動きをする数式があり、そちらは修正していた。
なぜこいつだけおかしな事をしていたのか。
そしてなぜ今まで正しく動いていたのか
謎だ