Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java double.MAX_VALUE?

Tags:

For my assignment I have to create a Gas Meter System for a Gas company to allow employees to create new costumer accounts and amend data such as name and unit costs along with taking(depositing) money from their account.

I have created my constructor and even added in a method of overloading although I'm currently running into a problem when initiating one of my methods I named deposit, this is supposed to take money from the users account while other methods such as recordUnits allows the employee to import a gas meter reading of how many units the customer has used and updates the balance of that customers account which is essentially what the customer owes the company.

When testing the program with just preset information when trying to initiate the deposit method I get this

Account.deposit(Double.MAX_VALUE); 

I am not too sure what this means and cannot seem to find anyway of getting past it!

test data and code seen below:

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);     } } 

break

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 strNewName, 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;       }  } 
like image 503
Kriss Brown Avatar asked Apr 22 '13 11:04

Kriss Brown


People also ask

What is Java double Max_value?

MAX_VALUE. public static final double MAX_VALUE. A constant holding the largest positive finite value of type double , (2-2-52)·21023. It is equal to the hexadecimal floating-point literal 0x1. fffffffffffffP+1023 and also equal to Double.

What is the value of double Max_value?

Remarks. The value of this constant is positive 1.7976931348623157E+308. The result of an operation that exceeds Double.

How do you find the max of a double in Java?

The max() method of Java Double class returns the double object having greater value amongst two double values. The result returned is same as by invoking Math. max() method.

What does double parseDouble mean in Java?

Double parseDouble() method in Java with examples The parseDouble() method of Java Double class is a built in method in Java that returns a new double initialized to the value represented by the specified String, as done by the valueOf method of class Double.


1 Answers

Double.MAX_VALUE is the maximum value a double can represent (somewhere around 1.7*10^308).

This should end in some calculation problems, if you try to subtract the maximum possible value of a data type.

Even though when you are dealing with money you should never use floating point values especially while rounding this can cause problems (you will either have to much or less money in your system then).

like image 184
Kuchi Avatar answered Oct 09 '22 13:10

Kuchi