How to check if a given string is a valid BigDecimal in Java

1 Answer

0 votes
import java.math.BigDecimal;

public class MyClass {
    public static void main(String args[]) {
        String s1 = "8217528938039999999999982734590087211199382724324131999999999372732342342928727231421289.348686"; 
        String s2 = "99999999999999999999999289380398273459009393837372827846462323998923842908472984729839199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990982374121"; 
        String s3 = "821752893803999999999998273459008721119938272432413e9999999"; 

        // Theoretical there is no limit for BigDecimal. BigDecimal allocates as much memory as it needs
        
        try 
        { 
            new BigDecimal(s1); 
            System.out.println(s1 + " is a valid BigDecimal"); 
        }  
        catch (NumberFormatException e)  
        { 
            System.out.println(s1 + " is not a valid BigDecimal"); 
            System.out.println(e);
        } 
          
        try 
        { 
            new BigDecimal(s2);
            System.out.println(s2 + " is a valid BigDecimal"); 
        }  
        catch (NumberFormatException e) 
        { 
            System.out.println(s2 + " is not a valid BigDecimal");
            System.out.println(e);
        } 
        
        try 
        { 
            new BigDecimal(s3);
            System.out.println(s3 + " is a valid BigDecimal"); 
        }  
        catch (NumberFormatException e) 
        { 
            System.out.println(s3 + " is not a valid BigDecimal");
            System.out.println(e);
        } 
    }
}



/*
run:

8217528938039999999999982734590087211199382724324131999999999372732342342928727231421289.348686 is a valid BigDecimal
99999999999999999999999289380398273459009393837372827846462323998923842908472984729839199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999990982374121 is a valid BigDecimal
821752893803999999999998273459008721119938272432413e9999999 is a valid BigDecimal

*/

 



answered Aug 20, 2019 by avibootz

Related questions

1 answer 186 views
1 answer 164 views
1 answer 158 views
4 answers 225 views
1 answer 158 views
2 answers 228 views
...