Solved

how print out all digits after decimal point for a variable (data type double) in java?

Posted on 2014-07-27
6
743 Views
Last Modified: 2014-07-29
Would like to print out max digits for a variable (data type double). For example,
double d1 = 100.01234567890123456789012345678901234567890123456789
double d2 =  2.0
How to print out d1/d2, which still keeps exact answer?

Another one:
d1 = 1.0; d2 = 3.0
How to print out the digits of d1/d2 as many as possible for this data type?
0
Comment
Question by:jl66
6 Comments
 
LVL 16

Expert Comment

by:krakatoa
ID: 40222692
Not sure your question makes much sense - to me at any rate.
0
 
LVL 27

Assisted Solution

by:rrz
rrz earned 250 total points
ID: 40222785
Please run this code.
import java.math.BigDecimal;
import java.math.MathContext;
public class TestD {

   public static void main(String args[]){
        double d1 = 100.01234567890123456789012345678901234567890123456789;
        double d2 = 2.0; 
        double d3 = 1.0;
	double d4 = 3.0;
        System.out.println(d1/d2);
        System.out.println(d3/d4);
	BigDecimal bd1 = new BigDecimal(100.01234567890123456789012345678901234567890123456789);
	BigDecimal bd2 = new BigDecimal(2.0);
	BigDecimal bd3 = new BigDecimal(1.0);
	BigDecimal bd4 = new BigDecimal(3.0);
	System.out.println(bd1.divide(bd2));
        System.out.println(bd3.divide(bd4,MathContext.DECIMAL128));
   }
}

Open in new window

0
 

Author Comment

by:jl66
ID: 40223290
Thanks for the tip.
If BigDecimal is not used, there is anything we can do with "double" to test the digit limit for "double" after the decimal point? The reason is that many math functions only deal with "double", but not BigDecimal.  We want to keep the precision as high as possible.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 27

Assisted Solution

by:rrz
rrz earned 250 total points
ID: 40223499
double can only go so far. Consider
 double pi = Math.PI; // prints   3.141592653589793

Open in new window

But, we all know pi is a  Non-terminating decimal.
0
 
LVL 32

Accepted Solution

by:
sarabande earned 250 total points
ID: 40227076
double has a precision of 15 or 16 significant decimal digits. significant means it is regardless where the decimal point is. you can test that by printing the d1 of your first sample. you will see that the output would differ from input with the 16th or 17th digit.

the precision is not always the same because a double is not stored as a decimal but in binary format as a pair of mantissa and exponent (where both have a sign bit).  

you could store your values as biginteger what would increase the precision to 20 - 21 digits. that could make sense if you always know where the decimal point is which must be placed later for output.

for higher precisions you would need an array of some basic type and use algebraic methods for the arithmetical operations.

Sara
0
 

Author Closing Comment

by:jl66
ID: 40228222
Thanks a lot.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
wordappend challenge 8 85
Math question 3 58
Permutation and Combination 9 48
Error with Java/Cache JDBC Classpath 2 20
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now