MySQL で float を select した結果が有効数字6桁である理由

https://stackoverflow.com/questions/13620850/select-a-float-with-given-precision

がおそらく答え。

有効数字6桁の十進数というのは、それを一旦 float にキャストしてそれをまた decimal にラウンドしたとしても、 その値が変わらない。

一方、有効数字7桁だとこれが発生するらしい。 というのも、float の仮数部は、bit数としては 7.23 桁十進数ぐらいの精度を持っているが、 1.0~9.9 のように10 ぐらいのゆらぎが (スケールとして) 存在していて、 2進数においても 2 倍ぐらいのゆらぎがあると想定でき、 まずい方が噛み合わされば7桁の有効数字少数は戻ってこれないらしい。