Lorsque j'essaie de convertir une chaîne en BigDecimal à l'aide de BigDecimal(), les chaînes comme '45e57' sont converties en version 4.5E + 57.Conversion de chaîne en BigDecimal lorsque la chaîne contient un 'e' Java
// on suppose que « texte » pour être une entrée
BigDecimal textToBigDecimal = null;
try
{
if (!textToBigDecimal.contains("e") && !textToBigDecimal.contains("E"))
{
textToBigDecimal = new BigDecimal(text);
}
}
catch (NumberFormatException ignored)
{
}
A partir de maintenant je lance erreur si « texte » contient « e ». Je me demande s'il y a une solution de contournement pour passer la vérification. Nécessité de convertir uniquement les chaînes avec des nombres, si d'autres caractères sont présents dans la chaîne, la conversion ne doit pas avoir lieu.
Je ne pouvais pas comprendre, quel est le problème? Pouvez-vous s'il vous plaît partager votre code et la trace complète de toutes les exceptions que vous obtenez? – BackSlash
On ne sait pas ce que vous demandez - en particulier, par "Mais je ne lèverai pas d'exception" voulez-vous dire que vous * voulez * lancer une exception, ou vous voulez qu'une exception * pas * soit levée? Un [mcve] rendrait beaucoup plus facile de vous aider. –
'new BigDecimal (" 45e57 ")' sera converti en '4.5E + 58' ce qui est correct! Que voulez-vous empêcher? Que réaliser? – Harmlezz