有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中将字符串解析为长字符串

我有以下代码:

public class Test {

public static void main(String args[]) {
     String blah = "1073841824.000000000000";
     Long longVersion = Long.parseLong(blah);
     System.out.println("Long : " + longVersion);

}


}

当我尝试打印结果时,我得到:

 Exception in thread "main" java.lang.NumberFormatException: For input
 string: "1073841824.000000000000"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
          at java.lang.Long.parseLong(Long.java:589)
         at java.lang.Long.parseLong(Long.java:631)
         at Test.main(Test.java:5)

字符串blah表示一个1GB的量。我不能只删除零,有些情况下,这些不会都是零。我不确定这里使用的Long类型是否正确


共 (1) 个答案

  1. # 1 楼答案

    如果要使用基元类型,use应该使用double。Long不能处理小数。但是应该使用BigDecimal类而不是double。它专为大数字设计,直接处理字符串。例如:

    BigDecimal bigDecimal = new BigDecimal(blah);