我正在用Java将19位数字除以100,即19位数字/ 100。可以使用long
数据类型将其整除,但是我没有得到17位数字和小数点后跟另外2位数字的完整值。相反,我只得到17位数字,因为它是long
数据类型,所以我需要像数学表达式一样的数字。
long cardValue = ("1234567891234567891");
long divide = (cardValue/100);
System.out.println(divide);
输出:12345678912345678
我需要输出为12345678912345678.91
[long
s是大整数,当您将它们除以一时,您会使用integer division,它忽略了小数点后的所有内容。
您可以改用BigDecimal
:
BigDecimal divide = new BigDecimal(String.valueOf(cardValue)).divide(new BigDecimal(100));
整数和long没有小数点。而是使用double。
double a = 123456789.00
double answer = (a/100.00)
在Java中引用原始数据类型。
如果要获取字符串并要潜水,请使用parseDouble()
方法将其转换为双精度。在此步骤之后,执行除法。
除法变量为long型,表示没有小数,只有整数。如果使用double,则可以获取小数,但是在这种情况下该类型没有所需的精度,因为它最多可以提供15个有效数字。
您唯一的解决方案是使用BigDecimal类。您可以获取所需的任何数字。我们将其用于银行和会计应用程序,并且很容易理解如何使用它。
HTH