假设我有这个号码:
// 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# 十进制数。