gpt4 book ai didi

java - 解析 JFormattedTextField,操作数据并解析回 String

转载 作者:行者123 更新时间:2023-12-01 10:09:02 25 4
gpt4 key购买 nike

我正在工作中处理一个项目,在解析数字时遇到一些问题。我不确定为什么我会得到奇怪的结果。

首先,我有一个包含 12 位数字的 JFormattedText 字段,如下所示:

referenceNumberField = new JFormattedTextField(nf);
referenceNumberField.setText("371260062101009");
referenceNumberField.setColumns(12);
panel5.add(referenceNumberField);

我的程序中还有一个循环,导致该数字被无限次写入。我被要求确保每次写入的数字都是不同的,而不改变位数。为此,我决定将当前计数器值添加到每次运行的数字中,因此它始终不同,但仍为 12 位数字。

首先,我尝试将 JFormattedTextField 解析为字符串。

String referenceStartingString = referenceNumberField.getText();

这部分工作正常。接下来我想把它变成 double ,这样我就可以操纵它。

double referenceNumberDouble = Double.parseDouble(referenceStartingString);
System.out.println("Reference Number Double: "+referenceNumberDouble);

我遇到的问题确实出在这里。我从运行时得到的结果是这样的:

Reference Number Double: 3.71260062101009E14

我不确定为什么添加了小数点,也不知道为什么数字中到底有“E”。我认为它代表指数,并且仅在数字超过 double 限制时才显示(我认为不会)..

只是为了澄清接下来的阶段

把我的计数器变成双

double countDouble = (double) j;

将两者相加:

double referenceTotal = referenceNumberDouble + countDouble;

然后变回字符串..

String referenceString = String.valueOf(referenceTotal);

如果无法将字符串转换为 double ,我无法继续下去,我感谢任何帮助!

最佳答案

E 表示 *10^。这是因为 int 的最大值约为 2000000000。尝试解析为 long 而不是 int。Long.parselong()

关于java - 解析 JFormattedTextField,操作数据并解析回 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36267580/

25 4 0