Я создаю код банкомата, который рассчитывает, сколько деноминаций в долларах США / евро (20 с, 10 с, 5 с, 1 с, центов) будет снято в зависимости от введенной пользователем суммы.Я уже выполнил расчеты в долларах США ... но теперь мне нужно преобразовать все это в евро (* 1,13) и вывести его в новый файл .txt (используя PrintStream = new PrintStream).
Я рассматривал вопрос о том, чтобы умножить введенное пользователем число в долларах США на 1,13, а затем использовать эту новую сумму для повторения моих расчетов (написание всего нового набора объявлений, а затем перепечатывание в .txt).Моя главная задача - найти более простой способ сделать это и вывести все на новый .txt.
Любой совет с благодарностью!
import java.math.BigDecimal;
import java.io.PrintStream;
import java.util.Scanner;
import java.io.FileOutputStream;
import java.io.IOException;
public class ATM1 {
private static final BigDecimal FIVE = new BigDecimal("5");
private static final BigDecimal TEN = new BigDecimal("10");
private static final BigDecimal TWENTY = new BigDecimal("20");
private static final BigDecimal ONE_HUNDRED = new BigDecimal("100");
public static void main(String[] args) throws IOException {
System.out.print("Please enter USD withdrawal amount: ");
Scanner user = new Scanner(System.in);
BigDecimal usdTotal = user.nextBigDecimal();
BigDecimal billsOut;
BigDecimal bills20 = usdTotal.divide(TWENTY, 0, BigDecimal.ROUND_DOWN);
BigDecimal remainder10 = usdTotal.remainder(TWENTY);
BigDecimal bills10 = remainder10.divide(TEN, 0, BigDecimal.ROUND_DOWN);
BigDecimal bills5 = remainder10.subtract(bills10.multiply(TEN)).divide(FIVE, 0, BigDecimal.ROUND_DOWN);
BigDecimal remainder5 = remainder10.remainder(FIVE.setScale(0, BigDecimal.ROUND_DOWN));
BigDecimal bills1 = (remainder5.setScale(0, BigDecimal.ROUND_DOWN));
BigDecimal cents = usdTotal.setScale(2, BigDecimal.ROUND_DOWN).subtract(usdTotal.setScale(0, BigDecimal.ROUND_DOWN))
.multiply(ONE_HUNDRED);
System.out.println("Twenty Dollar Bills: " + bills20);
System.out.println("Ten Dollar Bills: " + bills10);
System.out.println("Five Dollar Bills: " + bills5);
System.out.println("One Dollar Bills: " + bills1);
System.out.println("Cents: " + cents.toBigInteger());
user.close();
PrintStream output = new PrintStream("euro.txt");
System.setOut(output);
}
}