首页 > 解决方案 > Java BigDecmal 将负值更改为正值

问题描述

第三方服务向我的服务中的BigDecimal字段发送负值。我需要让它变得积极

我在 Spring 中重新阅读了大量有关 BigDecimal 的信息,但找不到解决方法。我不知道这是否可以在注释的帮助下完成,它会自动将符号从负数更改为正数,还是我需要手动更改符号?

例如,我的 DTO:

private BigDecimal priceValue;

-14.50总是出现在我面前,我希望结果为14.50并带有“+”号。

我在文档中读到可以使用@Positive - 但这对我不起作用。

标签: javaspringspring-bootbigdecimal

解决方案


我想说绝对价值是你的朋友:

https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#abs()

请记住 BigDecimal 对象是不可变的......

public foo() 
{ 
    BigDecimal num = new BigDecimal("-14.51"); 
    System.out.println("Absolute value is " + num.abs()); 
} 

推荐阅读