我希望能夠用科學記數法在我的應用程序爲下面的語句...進入Android電子科學noation一個多應用程式
float wc = Float.parseFloat(editText3.getText().toString());
成爲一個數字輸入的提示。這是可以的,我可以輸入2000,但不能輸入2e3。
我希望能夠用科學記數法在我的應用程序爲下面的語句...進入Android電子科學noation一個多應用程式
float wc = Float.parseFloat(editText3.getText().toString());
成爲一個數字輸入的提示。這是可以的,我可以輸入2000,但不能輸入2e3。
您必須查看字符串並自行進行更改。
我建議是這樣的:
String str = editText3.getText().toString();
double fValue;
if (str.contains("e")) {
String[] parts = str.split("e");
double part1 = Double.parseDouble(parts[0]);
double part2 = Double.parseDouble(parts[1]);
fValue = part1 * Math.pow(10, part2);
} else {
fValue = Double.parseDouble(str);
}
請注意,這不是測試,但我認爲這將正常工作。
部分[0]和[1]聽起來更好.. – 2013-05-08 18:31:57
@Waza_很好的捕捉,對那個感覺非常愚蠢。編輯。 – bclymer 2013-05-08 18:33:35
您還可以使用:
Double.valueOf("9.18E+09").longValue()
或
BigDecimal bd = new BigDecimal("9.18E+09");
long val = bd.longValue();
這應該工作。你遇到了什麼錯誤? – 2013-05-08 19:03:05