Предполагая, что производительность не является проблемой, и зная, что я хочу использовать только ОДИН тип для всех чисел, которые у меня есть в моей программе, какой тип будет правильным один для использования? Я думаю, что BigDecimal
, вероятно, лучший вариант, но я не уверен в этом.Что такое самый точный тип Java для описания числа
ответ
Вы правы. Если вы хотите использовать только один (не включая BigInteger
), вы должны использовать BigDecimal
.
Вот объяснение: The need of BigDecimal
И вы также можете проверить этот ответ: Double vs. BigDecimal?
Это зависит от того, как вы хотите использовать цифры.
Если вам вряд ли понадобится плавающая точка, и цифры не будут слишком большими, используйте int
как наиболее эффективное использование ЦП.
Если цифры могут быть слишком большими для int
long
. Использует в два раза больше памяти, но все-таки эффективен.
Если слишком большой для long
BigInteger
. Использует оптимальное количество байтов для числа. Перерывы, когда число> около 2^65535, работает для большинства сценариев. Медленно, чем int
или long
, но все же серьезно быстро.
Если слишком большой для BigInteger
, то вы по своему усмотрению. Возможно, однажды ...
Если вам нужна плавающая математика float
или double
хороши, пока вы работаете в своем диапазоне.
Для больших плавающих математических вычислений или более прогнозируемого расчета, чем double
или float
, используйте BigDecimal
. Ха сидит ограничения, такие как BigInteger
, но их редко укусить.
Помимо этого, если вы работаете исключительно в рационализации, то вы можете найти рациональный класс чисел полезным и точным, чем BigDecimal
. This выглядит нормально.
Если вы, вероятно, перейдете на иррациональную территорию, вы можете найти некоторые из классов продолжения фракций. Here - пример.
- 1. самый точный тип времени в java?
- 2. самый точный тип данных для позиционирования
- 3. RSpec: Самый точный тип для сервисного теста
- 4. Что такое тип данных числа в parse
- 5. Что такое самый маленький тип звука для AVAudioRecorder
- 6. Что такое тип языка для
- 7. Какой самый точный детектор кодирования?
- 8. Что такое Java-тип long long
- 9. Что такое тип реализации в java
- 10. Что такое тип литерала класса в Java?
- 11. Что такое точный эквивалент LD_PRELOAD на OSX?
- 12. Java: Что такое «для (;;)»
- 13. Самый точный валидатор AMP?
- 14. Java - что такое прототип?
- 15. Что такое python для BigDecimal для Java?
- 16. Что такое «тип SAM» в Java?
- 17. Что такое тип Literal в Java?
- 18. Что такое самый компактный формат для AVAudioRecorder?
- 19. Что такое самый короткий хэш/
- 20. Что такое колонка «Null» в описании описания?
- 21. Что такое тип сокета?
- 22. Что такое? тип?
- 23. Java: Насколько важен точный тип исключения
- 24. Что такое тип SOCKET?
- 25. Что такое «тип»?
- 26. Что такое самый простой способ «есть» в Java?
- 27. Что такое тип данных?
- 28. Что такое тип?
- 29. Тип описания для d3 sankey
- 30. Что такое ковариантный тип возврата?
Я боюсь, что это вопрос, прежде всего, мнение, основанное, и, вероятно, слишком широка, чтобы ответить. BigDecimal достаточно прочен, чтобы обрабатывать почти все, что вы можете на него наброситься, но мы понятия не имеем, что ваше приложение делает или что нужно делать. –
Вы сами ответили - BigDecimal –
Может быть, вы должны быть достаточно обобщенными, чтобы работать с любым числом вместо того, чтобы работать с типом номера, который не существует. BigDecimal не может даже представлять 1/3 правильно, не говоря уже о pi, sqrt (-1), кватернионе или большинстве сюрреалистических чисел. –