浮動小数点と言う響きからの想像だけで書いた解説を散見します
少し詳しく説明します、コンピュータはスイッチのオンオフだけで数字を表します
話しを簡単にするために4個のスイッチだけで説明します
まずは整数から
全部スイッチが落ちた状態を0000、全部立った状態を1111で表します
スイッチは一番右から1、2、4、8を表します、つまり
0001は1を表します
0010は2を表します
0100は4を表します
1000は8を表します
1001ならば1+8で9を表します
1111ならば1+2+4+8で15を表します
こうやって0~15までの数字を表すことができます、普通は64桁有るのでかなり大きい数字が表せます
では小数点つきですが、これはメーカによって違いは有りますが、基本は同じです
スイッチは一番左から1/2、1/4、1/8、1/16を表します、つまり
1000は1/2を表します
0100は1/4を表します
0010は1/8を表します
0001は1/16を表します
1001ならば1/2+1/16で9/16=0.5625を表します
1111ならば1/2+1/4+1/8+1/16で15/16=0.9375を表します
こうやって0~0.9375までの数字を表すことができます、普通は 52桁有るのでかなり細かく1.0~0.0に近い数字を表すことができます
これを仮数部と言います
それでは1.0以上はどうやって表すかというと、先ほどの整数の値をペアで使いますこれを指数部といいます、普通なら指数部は11桁です
指数部の値が1ならば仮数部を2倍します
指数部の値が2ならば仮数部を4倍します
指数部の値が4ならば仮数部を8倍します
指数部の値が0001つまり1で、仮数部が1001つまり9/16ならば、2×9/16=18/16=1.125を表します
つまり仮数部の値の小数点を指数部の値に基づいてずらします、この方式で表した数字を浮動小数点といいます
0.5625の小数点をずらして1.125と不思議に思うでしょうが、2進数で表すと意味が解ります
ーーー
浮動小数点の場合どうしても誤差がでますが、桁数を増やすことで誤差を実用上は問題が出ないレベルまで抑える事ができます
例えば100億円の利子が0.000001円違っても誰も文句は言いません