github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/math/big/ratconv.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 rat-to-string conversion functions.
     6  
     7  package big
     8  
     9  import (
    10  	"github.com/shogo82148/std/fmt"
    11  )
    12  
    13  var _ fmt.Scanner = &ratZero
    14  
    15  // Scanは、fmt.Scannerのサポートルーチンです。これはフォーマット
    16  // 'e', 'E', 'f', 'F', 'g', 'G', 'v'を受け入れます。すべてのフォーマットは同等です。
    17  func (z *Rat) Scan(s fmt.ScanState, ch rune) error
    18  
    19  // SetStringは、zをsの値に設定し、zと成功を示すブール値を返します。
    20  // sは(符号付きの可能性のある)分数 "a/b"、または指数をオプションで追加した浮動小数点数として与えることができます。
    21  // 分数が提供された場合、被除数と除数はともに10進整数であるか、またはそれぞれが独立して“0b”、“0”、“0o”、
    22  // “0x”(またはそれらの大文字のバリエーション)のプレフィックスを使用して2進数、8進数、または16進数の整数を示すことができます。
    23  // 除数は符号を持つことはできません。
    24  // 浮動小数点数が提供された場合、それは10進数の形式であるか、または上記と同じプレフィックスのいずれかを使用して
    25  // 10進数以外の仮数を示すことができます。先頭の“0”は10進数の先頭0と見なされます。この場合、8進数表現を示すものではありません。
    26  // オプションの10進数の“e”または2進数の“p”(またはそれらの大文字のバリエーション)の指数も提供できます。
    27  // ただし、16進数の浮動小数点数は(オプションの)“p”指数のみを受け入れます(“e”または“E”は仮数の桁と区別できないため)。
    28  // 指数の絶対値が大きすぎる場合、操作は失敗する可能性があります。
    29  // 文字列全体、つまりプレフィックスだけでなく、有効でなければならない。操作が失敗した場合、zの値は未定義ですが、返される値はnilです。
    30  func (z *Rat) SetString(s string) (*Rat, bool)
    31  
    32  // Stringは、xの文字列表現を形式 "a/b"(b == 1であっても)で返します。
    33  func (x *Rat) String() string
    34  
    35  // RatStringは、b != 1の場合は形式 "a/b"、b == 1の場合は形式 "a"でxの文字列表現を返します。
    36  func (x *Rat) RatString() string
    37  
    38  // FloatStringは、基数点の後にprec桁の精度で10進形式でxの文字列表現を返します。
    39  // 最後の桁は最も近いものに丸められ、半分はゼロから丸められます。
    40  func (x *Rat) FloatString(prec int) string
    41  
    42  // FloatPrecは、xの10進表現の小数点直後の非繰り返し数字の数nを返します。
    43  // ブール結果は、その多くの小数部分を持つxの10進表現が正確か丸められたかを示します。
    44  //
    45  // 例:
    46  //
    47  //	x      n    exact    n桁の小数部分を持つ10進表現
    48  //	0      0    true     0
    49  //	1      0    true     1
    50  //	1/2    1    true     0.5
    51  //	1/3    0    false    0       (0.333... は丸められます)
    52  //	1/4    2    true     0.25
    53  //	1/6    1    false    0.2     (0.166... は丸められます)
    54  func (x *Rat) FloatPrec() (n int, exact bool)