github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/math/big/ftoa.go (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // This file implements Float-to-string conversion functions.
     6  // It is closely following the corresponding implementation
     7  // in strconv/ftoa.go, but modified and simplified for Float.
     8  
     9  package big
    10  
    11  import (
    12  	"github.com/shogo82148/std/fmt"
    13  )
    14  
    15  // Textは、与えられたフォーマットと精度precに従って、浮動小数点数xを文字列に変換します。
    16  // フォーマットは次のいずれかです:
    17  //
    18  //	'e'	-d.dddde±dd, 10進数の指数、少なくとも2つ(可能性のある0)の指数の桁
    19  //	'E'	-d.ddddE±dd, 10進数の指数、少なくとも2つ(可能性のある0)の指数の桁
    20  //	'f'	-ddddd.dddd, 指数なし
    21  //	'g'	大きな指数の場合は'e'のように、それ以外の場合は'f'のように
    22  //	'G'	大きな指数の場合は'E'のように、それ以外の場合は'f'のように
    23  //	'x'	-0xd.dddddp±dd, 16進数の仮数、2の力の10進数の指数
    24  //	'p'	-0x.dddp±dd, 16進数の仮数、2の力の10進数の指数(非標準)
    25  //	'b'	-ddddddp±dd, 10進数の仮数、2の力の10進数の指数(非標準)
    26  //
    27  // 2の力の指数形式の場合、仮数は正規化された形式で印刷されます:
    28  //
    29  //	'x'	16進数の仮数は[1, 2)、または0
    30  //	'p'	16進数の仮数は[½, 1)、または0
    31  //	'b'	x.Prec()ビットを使用した10進数の整数仮数、または0
    32  //
    33  // 'x'形式は、他のほとんどの言語やライブラリで使用されている形式であることに注意してください。
    34  //
    35  // フォーマットが異なる文字の場合、Textは"%"と認識されないフォーマット文字を続けて返します。
    36  //
    37  // 精度precは、'e'、'E'、'f'、'g'、'G'、および'x'の形式で印刷される桁数(指数を除く)を制御します。
    38  // 'e'、'E'、'f'、および'x'の場合、それは小数点の後の桁数です。
    39  // 'g'と'G'の場合、それは全体の桁数です。負の精度は、x.Prec()マンティッサビットを使用して
    40  // 値xを一意に識別するために必要な最小の10進数の桁数を選択します。
    41  // 'b'と'p'の形式では、prec値は無視されます。
    42  func (x *Float) Text(format byte, prec int) string
    43  
    44  // Stringはxをx.Text('g', 10)のようにフォーマットします。
    45  // (Stringは明示的に呼び出す必要があります、[Float.Format] は%s動詞をサポートしていません。)
    46  func (x *Float) String() string
    47  
    48  // Appendは、x.Textによって生成された浮動小数点数xの文字列形式をbufに追加し、
    49  // 拡張されたバッファを返します。
    50  func (x *Float) Append(buf []byte, fmt byte, prec int) []byte
    51  
    52  var _ fmt.Formatter = &floatZero
    53  
    54  // Formatは [fmt.Formatter] を実装します。通常の浮動小数点数のフォーマット('b', 'e', 'E', 'f', 'F',
    55  // 'g', 'G', 'x')と同様に'p'と'v'も受け入れます。'p'の解釈については(*Float).Textを参照してください。
    56  // 'v'フォーマットは'g'のように扱われます。
    57  // Formatはまた、最小精度の指定、出力フィールドの幅、および符号制御のための'+'と' 'フラグ、
    58  // スペースまたはゼロパディングのための'0'、左または右の正当化のための'-'フラグもサポートしています。
    59  // 詳細はfmtパッケージを参照してください。
    60  func (x *Float) Format(s fmt.State, format rune)