【问题标题】:Avoid BigDecimal adding 0 java [duplicate]避免 BigDecimal 添加 0 java [重复]
【发布时间】:2020-03-26 00:10:14
【问题描述】:

我正在开发一个网络应用程序。我的 JPA 实体中有一个 Bigdecimal 属性,该属性映射到我的表中的一列。此列的类型为 Numeric(1,8)。

我的问题是当我输入这样的值时:1.4342,这个值会像这样 1.43420000 一样持久化。我想向用户显示的值是 1.4342。

您是否知道如何防止在我的数据库中保留 0,或者在使用 java 从数据库中检索值时如何删除 0?

【问题讨论】:

  • 这能回答你的问题吗? Removing trailing zeros from BigDecimal in Java
  • 您需要区分数字及其对用户的呈现方式。您告诉您的数据库您需要 8 个小数位,因此每个数字将在您的数据库中以 8 个小数位保存。但是,这与您在显示数字时向用户显示的小数位数无关。
  • 根据@OHGODSPIDERS 所说,这是数据库中列的精度,如果您不需要保存到 8 dp 的值,那么您可以运行ALTER TABLE table_name MODIFY column_name NUMBER(1,4);(例如)。否则,您需要根据之前的一些评论建议在查询数据库并设置为BigDecimal 时修改该值。

标签: java


【解决方案1】:

如果有人有同样的问题,我将我的变量转换为字符串,然后我开始从这个字符串的末尾删除零,我就是这样做的:

public class HelloWorld{

     public static void main(String []args){
        String amount = "1.08430000";

       for(int i = 0; i <= amount.length() ; i++){
         if (amount.endsWith("0")) {
             amount = amount.substring(0, amount.length() - 1) + "";

          }
       }

       System.out.println("RESULT without zero :" +amount);

     }
}

【讨论】:

猜你喜欢
  • 2020-09-23
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
相关资源
最近更新 更多