字符串到long:错误:数字格式异常:对于输入字符串" 3.1"?

时间:2014-06-25 05:42:57

标签: java string long-integer

我的字符串结果是:3.1

我想将其转换为long:

我使用了一些代码:

String txt_capplot="3.1";
Long.parseLong(String.valueOf(txt_capplot));

执行后它发生了一些错误,如:

java.lang.NumberFormatException: For input string: "3.1"

如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

Long就像整数,它不能有小数,但它会将它四舍五入。

<强>溶液

您需要先将其解析为double,然后cast将其解析为long

<强>样品:

    String s = "3.1";
    double d = Double.valueOf(s);
    long l = (long) d;

答案 1 :(得分:0)

由于long不包含小数,因此需要将String转换为double,然后转换为long

您应该尝试这一行解决方案:

Double.valueOf(txt_capplot).longValue();

答案 2 :(得分:0)

长期没有小数部分,因此您需要决定是要对其进行舍入还是截断它。此代码显示两者

package se.wederbrand.stackoverflow;

public class ConvertToLong {

    public static void main(String[] args) {
        String s = "3.6";
        double d = Double.parseDouble(s);
        long truncated = (long) d;
        long rounded = Math.round(d);

        System.out.println(" original: " + s);
        System.out.println("truncated: " + truncated);
        System.out.println("  rounded: " + rounded);
    }
}