亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何防止Java將條形碼轉換為科學計數法

如何防止Java將條形碼轉換為科學計數法

倚天杖 2022-05-25 10:49:49
我正在嘗試從 csv 文件中讀取條形碼。奇怪的是,當我在 IntelliJ 中打開文件時,它會完整顯示條形碼。當我嘗試讀取 csv 文件時,條形碼被轉換為科學計數法的數字。我在網上找到的最常見的解決方案是使用 Double.parseDouble(string) 將 String 轉換為 Double。但這會引發異常:java.lang.NumberFormatException: For input string: "5,40014E+12"實際方法:public String getField(String barcode) {    String field = null;    try {        String line;        br = new BufferedReader(new FileReader(csvFile));        br.readLine();        while ((line = br.readLine()) != null) {            String[] barcodeData = line.split(delimiter);            System.out.println(Double.parseDouble(barcodeData[2]));            if (barcodeData[2].equals(barcode)) {                field = barcodeData[67];            }        }    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    }    return field;}此方法用于有硬編碼預期結果的測試。但是在這種情況下,field 總是返回 null,因為 if 子句在這里永遠不會返回 true。實際異常在 System.out.println 中引發,我在其中檢查如何從 CSV 讀取數字。條形碼應為:5400141331875從 csv 文件中實際讀取的內容:5,40014E+12如何阻止 Java 將條形碼轉換為科學計數法?編輯我找到了一個“解決方案”。如果我不打開實際的 CSV 文件,數字不會轉換為科學計數法。對我來說,這是一個實際的解決方案,我希望將來有與我相同問題的人找到實際答案,為什么我的條形碼無法從 String 轉換為 Double/Long。謝謝大家的幫助。
查看完整描述

2 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

您是否嘗試將其解析為 Long 而不是 Double ?請看下面,我得到了預期的值:

String s = "5400141331875";
System.out.println(Double.valueOf(s).longValue());

打印 5400141331875


查看完整回答
反對 回復 2022-05-25
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

您可以嘗試以下方法:


  BigDecimal bd = new BigDecimal("5400141331875");


  System.out.println(bd.longValue());  // this prints 5400141331875


查看完整回答
反對 回復 2022-05-25
  • 2 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號