我正在用Java将19位数字除以100(19位数字/ 100)

问题描述 投票:-1回答:2

我正在用Java将19位数字除以100,即19位数字/ 100。可以使用long数据类型将其整除,但是我没有得到17位数字和小数点后跟另外2位数字的完整值。相反,我只得到17位数字,因为它是long数据类型,所以我需要像数学表达式一样的数字。

long cardValue = ("1234567891234567891");

long divide = (cardValue/100);

System.out.println(divide);

输出:12345678912345678

我需要输出为12345678912345678.91

java long-integer division
2个回答
1
投票

[long s是大整数,当您将它们除以一时,您会使用integer division,它忽略了小数点后的所有内容。

您可以改用BigDecimal

BigDecimal divide = new BigDecimal(String.valueOf(cardValue)).divide(new BigDecimal(100));

0
投票

整数和long没有小数点。而是使用double。

double a = 123456789.00
double answer = (a/100.00)

在Java中引用原始数据类型。

如果要获取字符串并要潜水,请使用parseDouble()方法将其转换为双精度。在此步骤之后,执行除法。


0
投票

除法变量为long型,表示没有小数,只有整数。如果使用double,则可以获取小数,但是在这种情况下该类型没有所需的精度,因为它最多可以提供15个有效数字。

您唯一的解决方案是使用BigDecimal类。您可以获取所需的任何数字。我们将其用于银行和会计应用程序,并且很容易理解如何使用它。

HTH

© www.soinside.com 2019 - 2024. All rights reserved.