Is there a really large variable type I can use in Java to store huge numbers (up to around forty digits)?
long's maximum value is 9223372036854775807, which is 19 digits -- not nearly large enough. 
I'm trying to create a calculator that can handle large numbers, because most nowadays can only hold an insufficient 10 digits or so, and I want want accurate calculations with numbers of a much larger magnitude
EDIT
Thanks for the answers. I can use BigInteger for big integers, the only limit being the computer's memory (should be sufficient). For decimals, I'll use float ^e, as @WebDaldo suggested, or BigDecimal (similar to BigInteger), as @kocko suggested.
 
     
     
     
     
     
     
    