gpt4 book ai didi

java - 为什么在转换为 BigDecimal 时带有前导符号(加号或减号)的数字在 Java 中被视为有效数字?

转载 作者:搜寻专家 更新时间:2023-10-31 19:47:55 25 4
gpt4 key购买 nike

下面的表达式显然在 Java 中是有效的

int a = -0;
int b = +0;

以下是。

Integer c = new Integer(-0);
int d = Integer.parseInt("-0");
BigDecimal e = new BigDecimal("-0");

但是以下陈述是无效的。

Integer f = new Integer("+0");   //Leading + sign.
int g=Integer.parseInt("+0"); //Leading + sign.

它们都抛出 NumberFormatException

然而,以下带有 BigDecimal 的语句编译和运行时不会引发异常。

BigDecimal bigDecimal = new BigDecimal("+0");  //Leading + sign.

为什么前导 + 符号在这里对 BigDecimal 有效,但对于 Java 中可用的其他数据类型似乎并非如此?

最佳答案

根据documentation , 负号需要减号。但如果是正整数,则不需要加号。

public static int parseInt(String s)

The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value. The resulting integer value is returned, exactly as if the argument and the radix 10 were given as arguments to the parseInt(java.lang.String, int) method.

然后对于构造函数:

public Integer(String s)

The string is converted to an int value in exactly the manner used by the parseInt method for radix 10.

关于java - 为什么在转换为 BigDecimal 时带有前导符号(加号或减号)的数字在 Java 中被视为有效数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13004193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com