我正在做一項大學任務,我曾使用雙打錢。我知道使用雙打來支付貨幣價值是不可取的,所以我想知道如何取代現有的BigDecimal雙倍的代碼。如何使用BigDecimal替換java中的錢幣
由於這是一個大學任務,我不想直接幫助我的代碼,也不想在這裏發佈它,所以我創建了以下代碼,我將欣賞直接回復,即更改我正在提供的代碼,以便我能理解發生了什麼。
我想知道如何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)));
}
}
我試過用Integer.toString等,通過將它移回兩個地方添加小數,但我不知道如何通過乘以20%的稅率來計算它,如果你能幫助我,很棒。 – 2011-12-26 21:34:54
20%是五分之一。稅是'金額/ 5'。帶回家是'(4 *金額)/ 5',檢查舍入錯誤。 – rossum 2011-12-26 22:14:25
對不起我的noob問題,但不會計算稅,例如4049美分導致小數點,因此不準確的計算,因爲int將忽略小數點後面的任何內容?或者NumberFormat會解決這個問題? – 2011-12-28 19:28:36