Java在方法之间传递参数

Java在方法之间传递参数,java,argument-passing,Java,Argument Passing,我是从Java开始的,有人给了我一个练习来编写一个简单的ATM。职能包括: 记住所有者-检查 开立账户,并可通过构造函数直接存款-支票 可以取款可以存款-支票 能够取消该帐户,并且任何后续操作都会遇到 抛出新的非法状态异常-检查 账户中最多可接受10万美元,并告诉运营商他们是否试图超过限额,以及他们可以存多少钱,直到他们的账户达到限额支票(某种程度上) 提示包括:人们希望看到100.00形式的货币,但这不利于Java计算,因此请保持内部机器以美分(瑞士的Rappen)运行,任何外部消息以美元和美

我是从Java开始的,有人给了我一个练习来编写一个简单的ATM。职能包括:

  • 记住所有者-检查
  • 开立账户,并可通过构造函数直接存款-支票
  • 可以取款可以存款-支票
  • 能够取消该帐户,并且任何后续操作都会遇到 抛出新的非法状态异常-检查
  • 账户中最多可接受10万美元,并告诉运营商他们是否试图超过限额,以及他们可以存多少钱,直到他们的账户达到限额支票(某种程度上)
  • 提示包括:人们希望看到100.00形式的货币,但这不利于Java计算,因此请保持内部机器以美分(瑞士的Rappen)运行,任何外部消息以美元和美分(即double)运行。 除了从美分到美元和美分的翻译外,一切都很好。我决定在美分旁边使用一个并行的double,并调用一个方法,将美分转换为美元和美分,而不覆盖或更改“内部”计数。不幸的是,它似乎不想成功地将参数传递给所提到的方法,因此没有正确地进行转换

    在构造器中,我想让kontostandInFranken(帐户余额以美元和美分表示)与kontostand(帐户余额以美分表示)具有相同的权重,但我已经在那里碰壁了。例如,戴夫开了一个账户,立即在里面存入25.50美元。当我在构造函数中运行该计算时,50美分将丢失,因为我必须将kontostandInFranken(以美元和美分表示的帐户余额)转换为整数,然后才能将其乘以100并使其等于kontostand(以美分表示的帐户余额)

    /**
    *@作者(Daniel.l。einars@gmail.com) 
    *@version(1.0)
    * 
    *不起作用的事情:
    *在方法之间传递参数。我做错了什么?
    *在RAPPEN和FRANKEN&RAPPEN之间转换。始终存在双精度VS.整数的问题
    */
    公共类Aufgabe2a
    {
    私人国际kontostand;
    私人双kontostandInFranken;
    私有字符串kontoInhaber;
    私有布尔kontoSaldiert;
    /**
    *建造师
    */
    公共Aufgabe2a(字符串kontoInhaber,双kontostandInFranken)
    {
    this.kontoInhaber=kontoInhaber;
    布尔kontoSaldiert=false;
    this.kontostand=kontostand;
    /**
    *第一期。我似乎无法将美分转换为美元和*美分
    */kontostand=(int)kontostandInFranken*(int)100;
    }
    /**
    *厄姆·格利赫特·康托因扎伦根
    */
    格尔登扎伦公共酒店(格尔登扎赫尔特酒店){
    国际单项体育联合会(geldEingezahlt 10000000){
    System.out.println(“你的名字是10万瑞士法郎。你的名字是瑞士法郎”+kontostandInFranken(kontostand)+
    (100000-kontostandInFranken)+“einzahlen”);
    }
    else kontostand=(kontostand+geldEingezahlt);
    返回kontostand;
    }
    /**
    *埃尔姆·格利赫特·格尔德·阿祖赫本
    */
    格尔达赫本公共区(格尔达赫本公共区){
    
    如果(geldAbgehoben您可能不应该在两个
    int
    值中分别存储“dollar”和“cents”。只需将“amount”存储在
    double
    bigdecimic
    中,然后在显示时格式化该值

    使用双精度
    的示例:

    double amount = 25.5;
    System.out.println(amount); // Unformatted
    
    System.out.printf("%.2f%n", amount);
    System.out.println(new DecimalFormat("0.00").format(amount));
    System.out.println(new DecimalFormat("#,##0.00").format(amount));
    System.out.println(NumberFormat.getCurrencyInstance().format(amount));
    
    amount = 100000;
    System.out.printf("%.2f%n", amount);
    System.out.println(new DecimalFormat("0.00").format(amount));
    System.out.println(new DecimalFormat("#,##0.00").format(amount));
    System.out.println(NumberFormat.getCurrencyInstance().format(amount));
    
    输出:

    25.5
    
    25.50
    25.50
    25.50
    $25.50
    
    100000.00
    100000.00
    100,000.00
    $100,000.00
    

    正如它在提示中所说的那样,如果你只存储一些美分的话,那就容易多了


    取美元数乘以100,53.27变成5327。将其存储为整数。所有的数学运算都会很好。必要时,只需除以100,5327就会再次变成53.27。感谢您花时间帮助。是的,这确实是我被告知的,我也会相应地增加。再次感谢!哦,很好!我还没有得到信息正在格式化println,但现在我知道了!练习的重点是能够在一个类中使用double和int,并能够在两者之间准确转换。defo会使用getCurrencyInstance吗?谢谢您的帮助!
    25.5
    
    25.50
    25.50
    25.50
    $25.50
    
    100000.00
    100000.00
    100,000.00
    $100,000.00
    
    public class CheckingAccount
    {
        private int _balance;
        private String _name;
        public CheckingAccount(String name, double initialBalance)
        {
            _name = name;
            _balance = (int)(initialBalance * 100);
        }
        ...
    }