16 進数文字列から切り捨て 10 進数へ
長い 16 進数文字列を 10 進表記に変換するのは、特に結果の数値が範囲を超える場合に困難になることがあります。 int64の。この問題に対処するために、Golang は math/big パッケージを提供しています。
変換例
次の 16 進文字列を考えてみましょう:
"0x00000000000000000000000000000000000000000000d3c21bcecceda1000000"
math/big を使用
変換するにはmath/big を使用してこの文字列を作成するには、次の手順に従います。
import "math/big" s := "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000" i := new(big.Int) i.SetString(s, 16) // Convert result to decimal (using %f formatting) fmt.Printf("%f", i)
小数点以下の桁数の切り捨て
小数点以下 18 桁に切り捨てるには、次の形式文字列を使用します。
%018.18f
例出力
上記のコードの出力は、小数点以下 18 桁でフォーマットされ、次のようになります。
1000000000000000000.000000
math/big パッケージは、TextMarshaler および fmt.Scanner インターフェイスもサポートしていることを覚えておいてください。文字列との変換。
以上がGo で長い 16 進数文字列を切り捨て 10 進数に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。