私は C でパーサーを作成しようとしていますが、その仕事の一部は、一連の文字を double に変換することです。これまで strtod を使用してきましたが、非常に危険であることがわかりました。番号がバッファの最後にあり、null で終了していない場合は処理されません。
自分で書こうと思いました。ab 形式の数値の文字列表現がある場合、(double)a + ((double)b / (double)10^n) を計算するだけでよいと考えるのは難しいでしょうか。ここで、n は次の数値です。 bの桁?
たとえば、23.4563:
a = 23 b = 4563
最終的な答え: 23 + (4563/10000)
それとも、フロートの IEEE 形式に関して不正確な結果を生成しますか?