我的字符串结果是:3.1
我想将其转换为long:
我使用了一些代码:
String txt_capplot="3.1";
Long.parseLong(String.valueOf(txt_capplot));
执行后它发生了一些错误,如:
java.lang.NumberFormatException: For input string: "3.1"
如何解决这个问题?
答案 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);
}
}