Каков эквивалент класса Java BigDecimal в C#?

BigDecimal класс в java.math пакет, который обладает большим количеством преимуществ для обработки больших чисел определенного масштаба. Есть ли эквивалентный класс или тип данных в c# с этой функцией.

45
задан Nathan Baulch 20 May 2011 в 13:35
поделиться

2 ответа

C # построил только BigInteger (в .NET framework 4).

Достаточно ли точности десятичной для вашей задачи? Это 128-битное число, которое может содержать значения в диапазоне от ± 1,0 × 10 -28 до ± 7,9 × 10 28 .

29
ответ дан 26 November 2019 в 21:14
поделиться

Ну, кроме использования сторонних библиотек с поддержкой BigDecimal (если они существуют), простых обходных путей нет. Самый простой способ, насколько я понимаю, это взять реализацию десятичной системы счисления (например, из mono) и переписать ее, используя тип BigInteger. Внутренне, в реализации mono, тип decimal состоит из трех целых чисел. Так что я не думаю, что это будет трудно реализовать. Однако я не уверен в эффективности. Однако сначала вам следует рассмотреть возможность использования стандартного десятичного типа, как упоминал codeka.

4
ответ дан 26 November 2019 в 21:14
поделиться