Java 从long传递到Double.parseDouble

Java 从long传递到Double.parseDouble,java,numberformatexception,Java,Numberformatexception,当我将100L这样的数字传递给Double.parseDouble()时 我有一个数字格式的感觉。 但100L是一个有效的数字 编辑:如果通过100d或100f,我不会得到任何错误。我只得到100L的值。100L是一个表示长值100的文本。字符串“100L”不是,因此当您将其传递给parseDouble()时,它会正确地抱怨。放下“L”你就没事了 更新:并不是说parseDouble()不喜欢文字语法,而是不喜欢您显式地将数字声明为long(实际上它正在寻找浮点类型)。100L是表示long值1

当我将100L这样的数字传递给Double.parseDouble()时 我有一个数字格式的感觉。 但100L是一个有效的数字


编辑:如果通过100d或100f,我不会得到任何错误。我只得到100L的值。100L是一个表示长值100的文本。字符串“100L”不是,因此当您将其传递给parseDouble()时,它会正确地抱怨。放下“L”你就没事了


更新:并不是说
parseDouble()
不喜欢文字语法,而是不喜欢您显式地将数字声明为
long
(实际上它正在寻找浮点类型)。

100L是表示long值100的文字。字符串“100L”不是,因此当您将其传递给parseDouble()时,它会正确地抱怨。放下“L”你就没事了

更新:并不是说
parseDouble()
不喜欢文字语法,而是不喜欢您显式地将数字声明为
long
(实际上它正在寻找浮点类型)。

来自JavaDocs

返回一个初始化为 指定的字符串,由类Double的valueOf方法执行

语法

public static double parseDouble(String s) throws NumberFormatException

Throws:
NumberFormatException - if the string does not contain a parsable double.
它需要一个字符串作为参数传递。“100L”是具有长值的文本,而不是字符串。为了避免任何错误,请尝试使用“100”而不是“100L”

我没有得到任何错误是如果通过100d或100f。我只卖100升

呼叫,它专门查找 浮点表示法。因为,d和f表示双精度和浮点数,所以一切正常。 但是,你不应该明确地指定这个数字。(如100L)


仅供参考

NumberFormatException:
正常运行:


来自JavaDocs

返回一个初始化为 指定的字符串,由类Double的valueOf方法执行

语法

public static double parseDouble(String s) throws NumberFormatException

Throws:
NumberFormatException - if the string does not contain a parsable double.
它需要一个字符串作为参数传递。“100L”是具有长值的文本,而不是字符串。为了避免任何错误,请尝试使用“100”而不是“100L”

我没有得到任何错误是如果通过100d或100f。我只卖100升

呼叫,它专门查找 浮点表示法。因为,d和f表示双精度和浮点数,所以一切正常。 但是,你不应该明确地指定这个数字。(如100L)


仅供参考

NumberFormatException:
正常运行:

“字符串”中的100l不是有效数字。您只需要传入一个有效的双字符串

class test{
    public static void main(String... args){
            System.out.println(Double.parseDouble("100.0000"));
    }}
这个很好用。正如另一位用户指出的那样,在字符串中传递“100l”是不起作用的,因为l意味着长值是一个文字数字

“字符串”中的100l不是有效数字。您只需要传入一个有效的双字符串

class test{
    public static void main(String... args){
            System.out.println(Double.parseDouble("100.0000"));
    }}

这个很好用。正如另一位用户指出的那样,在字符串中传递“100l”是不起作用的,因为l意味着长值是一个文字数字

对不起,用什么语言?Java?对不起,用什么语言?爪哇?不过,他肯定是在传递一个字符串;否则他会得到一个编译错误,而不是运行时异常。@dlev:当然可以。否则他会得到一个编译错误;否则他会得到一个编译错误,而不是运行时异常。@dlev:当然可以。否则他会得到一个编译错误。100d是可以的。Soo是100f。为什么会这样?正如saugok在下面写的,
parseDouble()
调用了
valueOf()
,它专门寻找浮点表示。d和f表示double和float,所以一切都很好。我觉得我最初的答案有点不对劲,因为它尊重字面修饰语,但事实上不喜欢它。现在更新。100d可以。Soo是100f。为什么会这样?正如saugok在下面写的,
parseDouble()
调用了
valueOf()
,它专门寻找浮点表示。d和f表示double和float,所以一切都很好。我觉得我最初的答案有点不对劲,因为它尊重字面修饰语,但事实上不喜欢它。现在更新。