gpt4 book ai didi

java - 将所有美元计算转换为欧元的最简单方法? (java)

转载 作者:行者123 更新时间:2023-12-02 10:15:12 25 4
gpt4 key购买 nike

我正在创建一个 ATM 代码,用于根据用户输入的金额计算将提取多少美元/欧元面额(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);





}
}

最佳答案

很少有 API 可以轻松地从一种货币转换为另一种货币,但仅限于大约 1000 次点击。如果您需要更多的点击量,您可能需要向他们付费。

package myPackage;

import java.math.BigDecimal;
import java.io.PrintStream;
import java.util.Scanner;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {

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 euroTotal = usdTotal.multiply(new BigDecimal("1.13")).setScale(2, BigDecimal.ROUND_HALF_UP);

calculateNotes(usdTotal, "USD");
calculateNotes(euroTotal, "EURO");

user.close();

PrintStream output = new PrintStream("euro.txt");
System.setOut(output);

}

private static void calculateNotes(BigDecimal total, String currency) {
BigDecimal bills20 = total.divide(TWENTY, 0, BigDecimal.ROUND_DOWN);

BigDecimal remainder10 = total.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 = total.setScale(2, BigDecimal.ROUND_DOWN).subtract(total.setScale(0, BigDecimal.ROUND_DOWN))
.multiply(ONE_HUNDRED);

System.out.println("CURRENCY : " + currency);
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() + "\n");
}
}

关于java - 将所有美元计算转换为欧元的最简单方法? (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54734551/

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