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

     1  // Copyright 2009 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  // Binary to decimal floating point conversion.
     6  // Algorithm:
     7  //   1) store mantissa in multiprecision decimal
     8  //   2) shift decimal by exponent
     9  //   3) read digits out & format
    10  
    11  package strconv
    12  
    13  // FormatFloatは、浮動小数点数fを、フォーマットfmtと精度precに従って文字列に変換します。
    14  // それは、元の値がbitSizeビット(float32の場合は32、float64の場合は64)の浮動小数点値から得られたものと仮定して、
    15  // 結果を四捨五入します。
    16  //
    17  // フォーマットfmtは、次のいずれかです。
    18  // 'b' (-ddddp±ddd、2進指数表記),
    19  // 'e' (-d.dddde±dd、10進指数表記),
    20  // 'E' (-d.ddddE±dd、10進指数表記),
    21  // 'f' (-ddd.dddd、指数なし),
    22  // 'g' (指数が大きい場合は'e'、そうでない場合は'f'),
    23  // 'G' (指数が大きい場合は'E'、そうでない場合は'f'),
    24  // 'x' (-0xd.ddddp±ddd、16進数の小数部と2進指数表記), または
    25  // 'X' (-0Xd.ddddP±ddd、16進数の小数部と2進指数表記)。
    26  //
    27  // 精度precは、'e'、'E'、'f'、'g'、'G'、'x'、および'X'フォーマットによって出力される指数を除く桁数を制御します。
    28  // 'e'、'E'、'f'、'x'、および'X'の場合、小数点以下の桁数です。
    29  // 'g'および'G'の場合、最大有効桁数です(末尾のゼロは削除されます)。
    30  // 特別な精度-1は、ParseFloatがfを正確に返すために必要な最小桁数を使用します。
    31  func FormatFloat(f float64, fmt byte, prec, bitSize int) string
    32  
    33  // AppendFloatは、FormatFloatによって生成された浮動小数点数fの文字列形式をdstに追加し、拡張されたバッファを返します。
    34  func AppendFloat(dst []byte, f float64, fmt byte, prec, bitSize int) []byte