有的時候數字超長,無論是數據庫進行操作還是Java代碼進行操作,都會變爲科學計數法。
現在有一個string類型的字段code,每新增一條數據,code+1。因爲需要的code很長,所以定義爲了string類型。
用MySQL數據庫自帶的函數MAX(code)+1得到的值爲科學計數法的值。需要的是正常的值。
嘗試了將code轉爲double類型+1後再轉爲string,發現還是變成了科學計數法。
查詢資料最終將code轉爲Big Decimal類型+1後再轉爲string類型。
public class Test {
public static void main(String[] args) {
String code = "1001000200010001";
System.out.println(code); //1001000200010001
Double codeDouble = Double.parseDouble(code) + 1;
System.out.println(codeDouble); //1.001000200010002E15
code = new BigDecimal(code ).add(new BigDecimal(1)).toString();
System.out.println(code); //1001000200010002
}
}