簡體   English   中英

如何用BigDecimal替換雙重的java中的monies

[英]How to replace doubles with BigDecimal for monies in java

我正在做大學任務,我用雙打錢。 我知道不建議使用雙倍的貨幣值,所以我想知道如何替換我用BigDecimal加倍的現有代碼。

由於這是一個大學作業,我不想直接幫助我的代碼,也不想在這里發布它,所以我創建了以下代碼,我希望直接回復,即更改我提供的代碼這樣我才能理解發生了什么。

我想知道BigDecimal如何用int或double乘以/除/加/減,或者甚至不是偶然。

還有其他主題涉及BigDecimal使用,但它們並不涵蓋我的具體問題,但是,如果我忽略了已經回答的帖子,我很抱歉。

這是代碼:

import java.util.Scanner;
import java.text.NumberFormat;

class example {
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    NumberFormat fm = NumberFormat.getCurrencyInstance();

    System.out.println("Enter the first amount:");
    double money1 = in.nextDouble();
    System.out.println("Enter the second amount:");
    double money2 = in.nextDouble();
    System.out.println("Enter the third amount:");
    double money3 = in.nextDouble();

    double tax = 0.2;
    double totalmoney = money1 + money2 + money3;
    double moneytax = (totalmoney)*tax;


    System.out.println("Your money added together is: " + fm.format(totalmoney));
    System.out.println("Tax on your money is: " + fm.format(moneytax));
    System.out.println("Your money after tax deduction is: " + fm.format((totalmoney-moneytax)));
    }
}

如果你想避免使用double,你需要從一開始就不要使用它。

BigDecimal money1 = new BigDecimal(in.nextLine());

四舍五入后,您應該能夠看到結果完全相同。

BigDecimal的替代方法可能是使用long進行所有計算,只需在末尾插入小數點。

BigDecimals是不可變的,但您可以使用特定的調用創建新的BigDecimal:

BigDecimal two = new BigDecimal("2.00");
BigDecimal four = new BigDecimal("4.00");

BigDecimal result = four.divide(two);

您可能還想查看scale()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM