STRTOD(3)

名称
strtod - ASCII 文字列を double に変換

ライブラリ
libc

書式
#include <stdlib.h> double strtod(const char *nptr, char **endptr)

解説
strtod() 関数は、 nptr が指す文字列の最初の部分を double による表現に変換します。

文字列に想定される形は、 オプションのプラス (``+'') またはマイナス (``-'') 記号、 続いて数字の並び (これはオプションで小数点文字を含みます) 、 オプションで指数が続くというものです。 指数は、 ``E'' または ``e'' に オプションでプラスまたはマイナス記号が続いて、 さらに数字の並びが続くという形です。

文字列の先頭の空白文字 (isspace(3) 関数により定義されるような) はスキップします。

戻り値
strtod() 関数は、どんなときでも変換された値を返します。

endptr が NULL でない場合は、変換に使われた最後の文字の次の文字へのポインタが、 endptr により参照される場所に格納されます。

変換が行われなかった場合は 0 が返され、 nptr の値は endptr によって参照される場所に格納されます。

正しい値がオーバーフローとなると思われるときは、 (その値の符号にしたがって) プラスまたはマイナスの HUGE_VAL が返され、 ERANGE が errno に保存されます。 正しい値がアンダーフローとなると思われるときは、 0 が返され、 ERANGE が errno に保存されます。

エラー

[ERANGE]
    オーバーフローまたはアンダーフローが起きました。

参照
atof(3), atoi(3), atol(3), strtol(3), strtoul(3)

規格
strtod() 関数は、 isoC に適合しています。

作者
このソフトウェアの作者は David M. Gay です。

Copyright (c) 1991 by AT&T.

本ソフトウェアのコピーや修正版、またはそれらを含むソフトウェア のすべてのコピー、およびそのようなソフトウェアのサポートドキュメント のすべてのコピーにこの注意書き全体が含まれていることを条件として、この ソフトウェアを無料であらゆる目的に使用し、コピーし、修正し、 配布することをここに許諾します。

本ソフトウェアは、いかなる明示的または暗黙的な保証なしに、 「そのままの形」で提供されています。 特に、作者あるいは AT&T は、 本ソフトウェアの商品性または特定の目的に対する適合性に関する 説明または保証を一切行いません。

strtod() およびそれに付随する関数のソースコードの無料 コピー入手については、ベンダーに連絡してください。