加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java double.MAX_VALUE?

发布时间:2020-12-15 00:06:26 所属栏目:Java 来源:网络整理
导读:你好,我在我计算系统开发的第一年,所以我对 Java很新,掌握了基础知识! 对于我的第一个任务,我必须为燃气公司创建一个燃气表系统,以允许员工创建新的客户帐户,并修改数据,如名称和单位成本以及从账户中存入(存入)资金. 我创建了我的构造函数,甚至添加了一个
你好,我在我计算系统开发的第一年,所以我对 Java很新,掌握了基础知识!

对于我的第一个任务,我必须为燃气公司创建一个燃气表系统,以允许员工创建新的客户帐户,并修改数据,如名称和单位成本以及从账户中存入(存入)资金.

我创建了我的构造函数,甚至添加了一个超载的方法,虽然我正在遇到一个问题,当我启动我的一个方法我命名存款,这应该是从用户帐户的钱,而其他方法,如recordUnits允许员工进口一个燃气表,读取客户使用的单位数量,并更新客户帐户的余额,这实际上是客户欠公司的.

当试图启动存款方法时,只需要预设的信息来测试程序,我得到这个

Account.deposit(Double.MAX_VALUE);

我不太确定这是什么意思,似乎无法找到过去吧!道歉,如果这已经发布,虽然我周围没有看到适当的答案.

测试数据和代码如下:

public class TestGasAccount 

{
    public static void main (String [] args)
    {
        GasAccount Account = new GasAccount (223,"Havana","TQ",1000);


        Account.getAccNo();
        Account.getName();
        Account.getAddress();
        Account.getUnits();
        Account.getBalance();
        Account.recordUnits(1000);
        Account.getUnits();
        Account.getBalance();
        Account.deposit(Double.MAX_VALUE);
    }
}

打破

public class GasAccount 
{
    private int intAccNo;
    private String strName;
    private String strAddress; 
    private double dblBalance;
    private double dblUnits;
    protected double dblUnitCost = 0.02; 

     public GasAccount(int intNewAccNo,String strNewName,String strNewAddress,double dblNewUnits)
     {
         intAccNo = intNewAccNo;
         strName = strNewName;
         strAddress = strNewAddress;
         dblUnits = dblNewUnits;
         dblBalance = dblNewUnits * dblUnitCost;
     }

     public GasAccount (int intNewAccNo,String strNewAddress)
     {
         intAccNo = intNewAccNo;
         strName = strNewName;
         strAddress = strNewAddress;
     }

     public double deposit (Double dblDepositAmount)
     {
        dblBalance = dblBalance - dblDepositAmount; 
        return dblBalance;
     }

     public String recordUnits (double dblUnitsUsed)
     {
         double dblTempBalance;

         dblTempBalance = dblUnitsUsed * dblUnitCost;
         dblBalance = dblBalance + dblTempBalance;
         dblUnits = dblUnits + dblUnitsUsed;

         return "Transaction Successful"; 
     }

     public int getAccNo ()
     {
         System.out.println(intAccNo);
         return intAccNo;
     }

     public String getName()
     {
         System.out.println(strName);
         return strName; 
     }

      public String getAddress()
     {
         System.out.println(strAddress);
         return strName; 
     }

     public double getBalance()
     {
         System.out.println("£"+dblBalance);
         return dblBalance; 
     }

     public double getUnitCost()
     {

         return dblUnitCost;
     }

     public double getUnits ()
     {
         System.out.println(dblUnits);
         return dblUnits;
     }

     public void updateUnitCost (double dblNewUnitCost)
     {
         dblUnitCost = dblNewUnitCost;

     }

}

这只是我的代码的裸骨,我有更多的要去,但这将是希望给你一个想法.

先谢谢你

解决方法

Double.MAX_VALUE是双重表示的最大值(约1.7 * 10 ^ 308左右).

如果您尝试减去数据类型的最大可能值,则应该在某些计算问题中结束.

即使在处理金钱的时候,也不应该使用浮点值,特别是在舍入这个问题时可能会导致问题(那么您的系统中的资金要少得多).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读