私はこの番号を持っているとしましょう:
// bmp = boost::multiprecision
bmp::cpp_dec_float n("123456789.1234567891011121314");
そのバックエンド データは次のとおりです。
[0] 1 unsigned int
[1] 23456789 unsigned int
[2] 12345678 unsigned int
[3] 91011121 unsigned int
[4] 31400000 unsigned int
... 0
[15] 0 unsigned int
これはまさに私が取得したいものです。残念ながら、番号の両方の部分を (bmp::int128_t
たとえば) 取得する方法、または番号の基になるデータを取得する方法が見つかりません。
つまり、私はこのようなものが存在するのが好きです:
bmp::int128_t integerPart;
bmp::int128_t floatPart;
n.getParts(integerPart, floatPart);
また
auto&& data = n.data(); // which is actually private when using `cpp_dec_float`.
とにかく、誰かが私が達成しようとしていることを行う方法を知っていますか?
記録のために、相互運用性のために C# の 10 進数として大きな 10 進数を表現するには、これが必要です。