Я анализирую строковое значение, которое, как я знаю, содержит число.
Если он содержит только цифры и находится между Integer.MIN_VALUE и Integer.MAX_VALUE, я анализирую его как int, так же, как и долго, иначе я использую BigInteger.
Если оно содержит десятичное значение, я бы хотел проанализировать его как double или как BigDecimal.
Могу ли я проверить, соответствует ли числовое значение в строке двойному и поэтому безопасно анализировать как двойное, или его нужно хранить в BigDecimal для предотвращения потери точности?