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
*/