Next: Float Arithmetic, Previous: Simultaneous Float Init & Assign, Up: Floating-point Functions [Index]
opをdouble
型に変換します。必要があれば切り捨て(即ち,ゼロ方向への丸め)ます。
opの指数部がdouble
型に対して大きすぎたり小さすぎたりする場合は,システムごとに結果が異なってきます。無限大が使えるときには,指数部溢れで無限大が返ってきますし,小さすぎるときには0.0が返されます。ハードウェアのオーバーフロー,アンダーフロー,非正規化エラーは設定次第で発生したりしなかったりします。
opをdouble
型に変換し,必要があれば切り捨て処理を行います(つまり,ゼロへの丸め)。指数部は別の場所に返されます。
返り値は0.5<=abs(d)<1の範囲になります。指数部は *exp
に格納されます。d * 2^expは切り捨てられたopの値です。opがゼロであれば,返り値は 0.0となり,*exp
にはゼロが格納されます。
この関数は標準Cのfrexp
関数と同じような機能を持ちます(see Normalization Functions in The GNU C Library Reference Manual)。
opをlong
やunsigned long
型に変換し,小数部は切り捨てます。opが変換型としては大きすぎる場合の結果は定義されていません。
mpf_fits_slong_p
や mpf_fits_ulong_p
(see Miscellaneous Float Functions)も参照して下さい。
opを基数baseの文字列に変換します。基数は2以上36以下,もしくは-36以上-2以下に設定できます。表現できるのはn_digits桁までで,以降のゼロは無視されます。opを正確に表現できる桁数までしか表示されません。n_digitsがゼロの時は,最大桁数まで表示されます。
baseが2以上36以下の時は,数字と小文字で表現されます。-36以上-2以下の時は,数字と大文字が使用されます。37以上62以下の時は数字,大文字,小文字が順に使用されます。
strがNULL
であれば,現在のメモリ割り当て関数(see Custom Allocation)を使って必要な文字列分,即ち,NULL終端子を含むstrlen(str)+1
バイト分が確保されます,
strがNULL
でなければ, n_digits + 2バイト分の領域があればそこに格納されます。これは仮数部,マイナス符号,NULL終端子を含む領域です。n_digitsがゼロの時は,有効桁全て表示されますが,アプリケーションがどのぐらいの桁数になるかを事前に知ることができませんので,この場合はstrをNULL
にしておくべきでしょう。
生成された文字列は小数で,小数点は先頭の桁の左にあるものと考えます。指数部はexpptrポインタのところに書きこまれます。例えば,3.1416は "31416"
という文字列(小数部)と,指数部1になって返されます。
opがゼロの時は,空文字列と指数部ゼロが返ってきます。
返り値は文字列へのポインタで,新規に確保された領域か,あらかじめ与えられたstrとなります。