Advertisement
BigETI

Euler.java

Nov 12th, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.84 KB | None | 0 0
  1. import java.math.BigDecimal;
  2. import java.math.RoundingMode;
  3.  
  4.  
  5. public class Euler {
  6.     private Euler()
  7.     {
  8.        
  9.     }
  10.    
  11.     private static BigDecimal factorial(long n)
  12.     {
  13.         BigDecimal ret = new BigDecimal(1);
  14.         long i;
  15.         if(n > 0) for(i = 1L; i <= n; i++) ret = ret.multiply(new BigDecimal(i));
  16.         return ret;
  17.     }
  18.    
  19.     public static BigDecimal e(int precision)
  20.     {
  21.         return e(0.0, precision);
  22.     }
  23.    
  24.     public static BigDecimal e(double epsilon, int precision)
  25.     {
  26.         BigDecimal ret = new BigDecimal(0), add, big_one = new BigDecimal(1), big_epsilon = new BigDecimal(epsilon);
  27.         long i = 0;
  28.         if(epsilon < 0) epsilon = -epsilon;
  29.         if(precision < 0) precision = -precision;
  30.         do
  31.         {
  32.             add = big_one.divide(factorial(i++), precision, RoundingMode.HALF_UP);
  33.             ret = ret.add(add);
  34.         }
  35.         while(add.compareTo(big_epsilon) > 0);
  36.         return ret;
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement