gpt4 book ai didi

java - 如何在java中以bigdecimal的相反顺序处理负值?

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:30 25 4
gpt4 key购买 nike

我在 BigDecimal 中遇到一个问题,即以相反的顺序处理负值。我遇到了 NumberFormatException。怎么解决呢?

这是我的代码:

import java.math.BigDecimal;

public class Java_bigdecimal_signum {
public static void main(String args[]) {

BigDecimal obj = new BigDecimal("20.15-");
int i = obj.signum();
System.out.println("\nobject value : " + obj
+ "\nmethod generated value : " + i);
}
}

异常(exception)是:

Exception in thread "main" java.lang.NumberFormatException
at java.math.BigDecimal.<init>(Unknown Source)
at java.math.BigDecimal.<init>(Unknown Source)
at Java_bigdecimal_signum.main(Java_bigdecimal_signum.java:6)

我需要以下输出:

object value : -20.15
method generated value : -1

提前致谢。

最佳答案

好吧,我假设您从实际代码中的其他地方获取末尾带有减号的数字String,而不是将String文字传递给BigDecimal。如果是这样,您可以在将 String 变量传递给 BigDecimal 之前对其进行处理,然后将 - 从末尾移动到开头,如下所示。

import java.math.BigDecimal;

public class Java_bigdecimal_signum {
public static void main(String args[]) {
String number = "20.15-";
if(number.endsWith("-")){
number = "-" + number.substring(0, number.length() -1);
}
BigDecimal obj = new BigDecimal(number);
int i = obj.signum();
System.out.println("\nobject value : " + obj
+ "\nmethod generated value : " + i);
}
}

而且,显而易见的是,如果您确实只是将 String 文字传递给 BigDecimal (如示例代码中所示),那么只需将减号放在开头即可。 :)

希望这有帮助。

关于java - 如何在java中以bigdecimal的相反顺序处理负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22530875/

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