获取数字格式异常

Getting number format excpetion

无法解析以下号码。

Long.parseLong("1000.00".length() > 0 ? "1000.00" : "0")

解析“1000.00”时出现数字格式异常。

如何在java中将“1000.00”这个字符串解析成long?

删除该字符串的点或小数部分,Long 实际上是一个具有 64 位容量的整数...

System.out.println(Long.parseLong("1000.00".length() > 0 ? "1000" : "0"));

longs是整数。 "1000" 可以。 "1000.00" 有小数部分(为零,但仍为零),不会。

How to parse "1000.00" this string into long in java?

在一般情况下,你不能; a long 无法存储小数部分。

现在,在您的特定示例中,小数部分为零,因此您可以将其删除:

long result = Long.parseLong("1000.00".split("\.")[0]);

或者您可以将其解析为双精度数然后截断它:

long result = (long)Double.parseDouble("1000.00");

...但同样,请注意 long 是不支持小数值的整数类型。

(long)Double.parseDouble("1000.00".length() > 0 ? "1000.00" : "0")