扶桑ゴム産業の最新情報とうぇぶますたあ「TKYK」の個人的日記。 ゴムペディアゴム通扶桑ゴム産業 株式会社扶桑ゴム産業

calendar

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< April 2006 >>

categories

archives

広告

スポンサーサイト

一定期間更新がないため広告を表示しています

  • 2014.06.10 Tuesday
  • -
  • -
  • -
  • -
  • by スポンサードリンク

Fedora Coreを触った

fedora coreのイメージ。
サーバの移転検討中に、Fedora Coreというものに出会った。どうやらRed Hat系のフリーなLinuxらしく…ちょっと気になって転がっているノートPCにインストールしてみた。

CDドライブが壊れているノートで動かしたいがために、これまた転がっているMMXPentium233なロースペックノートでインストールしてHDDを移動して…

TurboLinuxの時は「なぜか」インストールに色々苦労したが、今回はほとんど苦労せず認識してくれた。しかも!なんとなく速くない?ウィンドウシステムがGNOMEだから?KDEが基本のTurboLinuxもGNOMEにしたらこうなるのか??インストール位ではまだよく分からないけど、とっても興味深いLinuxディストリビューションでした…。

0.8 ≠ 0.8 ?

MySQLでいろいろやっている途中、不思議な現象に。

データベースに格納されている数値は「0.8」。
比較したい数値も、「0.8」。

でも、SQLで比較しても引っかかってこない。なぜ…
float型が問題?浮動小数点はあんまり好きではないけど…

調べたところ、「やっぱり」でしたしょんぼり
MySQLで小数点を“正確”に比較したいときは、decimal型なのね…
昔、Excelで時刻の比較をしたときのそれと同じような、2進数小数の落とし穴に入り込んでしまっていたのでありました…。

追記:
しかし、0.8みたいな数値、そこまで精度が必要にならなさそうなのにねぇ…と思って、double型に変更したらうまくいきました。

ここにも書かれてあった、
MySQL の計算はすべて倍精度で行われるため、FLOAT の使用時には予期しない問題が発生する場合があることに注意する。


このあたりが問題を引き起こしていたのではないか?たぶん。

さらに:
FLOAT または DOUBLE カラムを小数と比較している場合、'=' は使用できない。浮動小数点の値は正確な値ではない。この問題は大部分のコンピュータ言語で共通。 たいていの場合、FLOAT を DOUBLE に変更すると問題は解決する。


ちゃんと書いてあった…ちゃんちゃん。

| 1/1PAGES |