gpt4 book ai didi

Java设置 double 值并保留所有小数点并仅获取小数点后2位数字

转载 作者:行者123 更新时间:2023-12-02 01:54:11 26 4
gpt4 key购买 nike

在java中,我对存储和获取双值感到困惑。目前我正在创建包含一些会计部分的软件,我想存储与计算结果相同的计算值,如 202.234234234212312 ,在显示时我想将其显示为小数点后两位数字的 202.23 。在计算中我想用 2,4 或 6 位数字进行计算。

为此我有两个选择

  1. 在计算值时存储值,并在金额字段的 getter 方法中,我可以将其格式化。

    private Double amount;
    public Double getAmount() {
    DecimalFormat df2 = new DecimalFormat(".##");
    return Double.valueOf(df2.format(amount));
    }

但是这个方法的问题是,它会在我得到金额的时候得到格式化的数字。我无法获取实际存储金额。

  • 我可以使用 2 个单独的字段来获取和设置。

    private Double amount;
    private Double amountFormatted;

    public Double getAmount() {
    return amount;
    }

    public Double getAmountFormatted() {
    DecimalFormat df2 = new DecimalFormat(".##");
    return Double.valueOf(df2.format(amountFormatted));
    }
  • 所以请提供更好的方法来存储和获取十进制值,谢谢。

    最佳答案

    首先,所有涉及金钱的计算都应该以 BigDecimal 进行,而不是 double。 double 无法精确表示 0.1 这样的数量。

    其次,如果您的 getAmountFormatted 仅用于输出目的,则不应返回 Double,而应返回 String。

    两种方法使用相同的金额变量。

    关于Java设置 double 值并保留所有小数点并仅获取小数点后2位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52552023/

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