Next: Simultaneous Float Init & Assign, Previous: Initializing Floats, Up: Floating-point Functions [Index]
この代入関数は新しい値を,初期化済みの浮動小数点数 (see Initializing Floats)に代入するためのものです。
ropにopの値を代入します。
文字列strから変換してropに値を代入します。文字列は‘M@N’という表現形式か,10以下の基数であれば‘MeN’という形式に対応しています。‘M’は仮数部,‘N’は指数部を表わします。仮数部は常に指定された基数baseを使います。指数部は指定基数か,baseが負数であれば10進と判断して扱います。小数点は現在のロケールに依存したものが使用でき,localeconv
で設定できます。
引数baseは2以上62以下の値が設定できます。-62 以上 -2以下の負数であれば,指数部は10進数であると判断します。
36以下の基数であれば,大文字小文字の区別はせずに同じ値とみなします。37以上62以下であれば,大文字は10~35,小文字は36~61を表現しているものとみなします。
同様の機能を持つmpz
関数とは異なり,baseがゼロであっても先頭文字で基数を判断したりはしません。従って,‘0.23’のような小数を8進数とは解釈しません。
ホワイトスペースが文字列に入っていても単純に無視されます。[というのは完全には正しくない。文字列の先頭や仮数部の中に入ったホワイトスペースは確かに無視されるが,その他の場所,例えばマイナス記号の後や,指数部の中に入った場合は別。この関数の定義を変えて,入力値にホワイトスペースが入ることを厳禁するようにしたいと考えているので,ご意見をお寄せ頂きたい。"3 14"
を314と解釈してもいいと思う?]
この関数は,文字列全体が正しい基数baseの数として表現されていればゼロを返し,失敗した時には-1を返します。
rop1とrop2の値と精度を素早く交換します。