开发者

Long.parseLong("digitstring too significant") produces java.lang.NumberFormatException

I get开发者_开发技巧 a java.lang.NumberFormatException: For input string: "1.7023484830876092"

trimming the string to 1.70234, does solve the problem, but before slicing the string myself I'm wondering whether its possible to use some java methods to leverage the capacity of the target object.

kind regards, jeroen.


you could try using the DecimalFormat class:

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();
  }

this might work....


It looks like a float. Especially since the first "." is the only one.


Do you perhaps want BigDecimal? It's variably sized to accommodate any number, so long as you have the memory. Use as new BigDecimal(stringNumber). Downside is you don't get access to the standard infix operators(eg. + - * / etc...).

But if you just want the largest value that can be held by a primitive then use Long.MAX_VALUE


You cannot parse floating point values with Long.parseLong. Use Double.parseDouble instead.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜