我有這樣的代碼:錯誤解析雙java的
public void refreshResources(){
try{
String res = driver.findElement(By.cssSelector("#resources_metal")).getText();
System.out.println("Metal read: " + res);
res = res.replaceAll("\\u002e", ""); //Removes dots
System.out.println("Metal without dots: " + res);
this.metRes = Double.parseDouble(res);
System.out.println("Converted Metal: " + metRes);
}catch(NoSuchElementException error){
System.out.println("Error please try again");
}
這是我的輸出:
金屬閱讀:47.386.578
金屬沒有點:47386578
轉換金屬: 4.7386578E7
問題是,爲什麼我的轉換結束時會出現「E7」金屬? 在此先感謝。
假設你參考這個[文章](https://stackoverflow.com/questions/6171823/how-can-i-change-2-5e7-to-a-normally-formatted-number)。 –
雙精度不具有無限精度。這是你在科學記數法中的價值。 –
這會給你很多關於「爲什麼」問題的背景:https://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency –