Мне нужно хранить десятичную произвольную длину в c ++.Ниже рассматривается структура, которую мы рассматриваем:
<NumberAsString(char*), DecimalAt(int32)>
Примером этого может быть:
1.00003940400
<"100003940400", 11>
0.0004
<"0004", 4>
10
<"10", 0>
Похоже ли это на хороший способ хранения десятичной дроби?Есть ли лучший способ сделать это?
Другой возможный подход был бы аналогичен тому, как «денежные модули» часто работают в javascript, например, давая число как int «в центах» - $ 102,25хранится как 10225. И мы будем хранить его так:
<int64, int64> # the second int64 would be the decimal places
Например, если мы допустим «5 десятичных знаков точности», то мы будем хранить:
12.250
<12, .250E5> // or <12, 25000>
Какой подход будет лучше - или, возможно, использовать что-то еще целиком?