第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

有沒有一種更干凈/更簡單的方法來在代碼中編寫這個(gè)公式?

有沒有一種更干凈/更簡單的方法來在代碼中編寫這個(gè)公式?

胡子哥哥 2022-09-28 10:06:39
我需要返回一個(gè)雙精度值。此值派生自此公式。每月利息 = 余額 * 利率 / 100.00 /12.0由于一些精度問題,我將在計(jì)算過程中使用BigDecimal并返回雙精度值(因?yàn)檫@是貨幣的表示方式)。我已經(jīng)嘗試了下面的代碼,它工作得很好,但如果你問我,看起來很長,有點(diǎn)不可讀。double bal = 10, rate=2, hundred = 100.00, month = 12.0;double monthInt= (BigDecimal.valueOf(bal).multiply(BigDecimal.valueOf(rate)).divide(BigDecimal.valueOf(hundred)).divide(BigDecimal.valueOf(month))).doubleValue();return monthInt;
查看完整描述

2 回答

?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

您知道 的結(jié)果將始終除以 和 。因此,您可以將公式的這些靜態(tài)部分保存在變量中。balance * interest rate10012static

private static final BigDecimal MONTH_IN_PERCENT = BigDecimal.valueOf(100 * 12);

然后在計(jì)算中使用它:

return BigDecimal.valueOf(bal).multiply(BigDecimal.valueOf(rate).divide(MONTH_IN_PERCENT).doubleValue();

如果您可以保證 ,則可以使用此版本:bal * rate <= Long.MAX_VALUE

return BigDecimal.valueOf((long) bal * rate).divide(MONTH_IN_PERCENT).doubleValue();


查看完整回答
反對 回復(fù) 2022-09-28
?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊

我強(qiáng)烈建議您增加一些精確度。否則,您可能會得到一些聲明,即沒有提供確切的精度。BigDecimalArithmeticException


執(zhí)行類似操作


public static double calculateMonthlyInterest(BigDecimal balance, BigDecimal rate,

               BigDecimal hundred, BigDecimal month) {

    return balance.multiply(rate)

            .divide(hundred, 2, BigDecimal.ROUND_HALF_UP)

            .divide(month, 2, BigDecimal.ROUND_HALF_UP)

            .doubleValue();

}

或者這個(gè)(如果你想提供參數(shù)):double


public static double calculateMonthlyInterest(double balance, double rate,

               double hundred, double month) {

    BigDecimal b = new BigDecimal(balance);

    BigDecimal r = new BigDecimal(rate);

    BigDecimal h = new BigDecimal(hundred);

    BigDecimal m = new BigDecimal(month);

    return b.multiply(r)

            .divide(h, 2, BigDecimal.ROUND_HALF_UP)

            .divide(m, 2, BigDecimal.ROUND_HALF_UP)

            .doubleValue();

}

這樣,代碼保持可讀性,但這需要一定的價(jià)格:有更多的代碼行!


查看完整回答
反對 回復(fù) 2022-09-28
  • 2 回答
  • 0 關(guān)注
  • 96 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號