我得到一个 java.lang.NumberFormatException: For input string: "1.7023484830876092"
将字符串修剪为 1.70234,确实解决了问题,但在我自己切片字符串之前,我想知道是否可以使用一些 java 方法来利用目标对象的容量。
亲切的问候,杰罗恩。
我得到一个 java.lang.NumberFormatException: For input string: "1.7023484830876092"
将字符串修剪为 1.70234,确实解决了问题,但在我自己切片字符串之前,我想知道是否可以使用一些 java 方法来利用目标对象的容量。
亲切的问候,杰罗恩。
您可以尝试使用 DecimalFormat 类:
http://download.oracle.com/javase/1.5.0/docs/api/java/text/DecimalFormat.html
DecimalFormat fm = new DecimalFormat("#.################");
try {
double x = fm.parse("1.12345678901234").doubleValue();
System.out.println(x);
} catch (ParseException e) {
e.printStackTrace();
}
这可能有效....
它看起来像一个浮子。尤其是从第一个“.”开始。是唯一的一个。
您可能想要 BigDecimal 吗?只要您有记忆力,它的大小就可以容纳任何数字。用作new BigDecimal(stringNumber)
. 缺点是您无法访问标准的中缀运算符(例如 + - * / 等...)。
但是,如果您只想要原语可以保存的最大值,请使用Long.MAX_VALUE
您不能使用 Long.parseLong 解析浮点值。请改用 Double.parseDouble。