簡體   English   中英

解析JFormattedTextField,處理數據並解析回String

[英]Parsing JFormattedTextField, manipulating data and parsing back to String

我正在工作的一個項目上,在解析數字時遇到一些問題。 我不確定為什么我會得到奇怪的結果。

首先,我有一個JFormattedText字段,其中包含12位數字,如下所示:

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

我的程序中還有一個循環,導致該數字被無限次寫入。 我被要求確保每次寫入的數字都是不同的,而又不更改位數。 為此,我決定將當前計數器值添加到每次運行的數字中,因此它始終是不同的,但保留12位數字。

首先,我嘗試將JFormattedTextField解析為一個字符串。

String referenceStartingString = referenceNumberField.getText();

這部分正常工作。 接下來,我想將其變成一個雙,以便可以對其進行操作。

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

我真正遇到的問題就在這里。 我從運行時得到的結果是:

Reference Number Double: 3.71260062101009E14

我不確定為什么要加上小數點,也不確定為什么數字中恰好是“ E”。 我認為這代表指數,並且僅在數字超過兩倍的限制時才會顯示(我不認為這樣做)。

只是為了澄清下一步

把我的櫃台變成兩倍

double countDouble = (double) j;

將兩者加在一起:

double referenceTotal = referenceNumberDouble + countDouble;

然后轉回一個字符串。

String referenceString = String.valueOf(referenceTotal);

無法將字符串轉換為雙倍,我無法再進一步了,非常感謝您的幫助!

E表示*10^ 這是因為int的最大值約為2000000000。請嘗試解析為long而不是int。 Long.parselong()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM