Garmaine Staff asked 2 years ago

I have a code in java that says,

btmpW / imgW

but in this case I get 0 as the value, I tried using int, long, float and double as my data type but it still returns 0.

When I try to do the Log.i() on both int values, I got this

I/btmpW: 548
I/imgW: 1041

So using a calculator to calculate, I got 0.5346341463… and I am new to Java, but I think Java don't accept numbers with more than 9 digits, making me assume that Java returns only the (int)0 and since the digits are more than 9, it just ignored the decimal. So i searched and found something like BigDecimal and BigInteger. So I tried to use them, but I am getting some errors

So I want to know, is there a way to store such value in Java. btmpW and imgW are user defined so I don't know what the outcome would be when I run btmpW / imgW, so basically, is there a digits data type in Java that stores both long, short, integer and decimal numbers


Below are the errors I am getting

BigDecimal a = (BigDecimal)btmpW / imgW;  //Inconvertibles types; cannot cast 'int' to java.math.BigDecimal

BigInteger a = (BigInteger)btmpW / imgW;  //Inconvertibles types; cannot cast 'int' to java.math.BigInteger

BigIntegers a = (BigIntegers)btmpW / imgW;  //Inconvertibles types; cannot cast 'int' to java.math.BigIntegers

BigDecimal a = btmpW / imgW;  //Inconvertibles types; REQUIRED: BigDecimal FOUND int

BigInteger a = btmpW / imgW;  //Inconvertibles types; REQUIRED: BigInteger FOUND int

BigIntegers a = btmpW / imgW;  //Inconvertibles types; REQUIRED: BigIntegers FOUND int