将包含小数的字符串转换为长字符串[英] Converting a String that contains decimal to Long

问题描述

我有以下示例(链接到 ideone).

long lDurationMillis =  0;
lDurationMillis = Long.parseLong("30000.1");
System.out.print("Play Duration:" + lDurationMillis);

抛出异常:

Exception in thread "main" java.lang.NumberFormatException: For input string: "30000.1"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:419)
at java.lang.Long.parseLong(Long.java:468)
at Main.main(Main.java:9)

但是为什么它不允许我直接将该数字转换为字符串?我可以将数字转换为整数而不是转换为双精度.但是有没有其他办法呢?

推荐答案

值 30000.1 是无效的 long 值.您可以先解析双精度值:

lDurationMillis = (long)Double.parseDouble("30000.1");

本文地址:https://www.itbaoku.cn/post/978752.html