Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- public class Euler {
- private Euler()
- {
- }
- private static BigDecimal factorial(long n)
- {
- BigDecimal ret = new BigDecimal(1);
- long i;
- if(n > 0) for(i = 1L; i <= n; i++) ret = ret.multiply(new BigDecimal(i));
- return ret;
- }
- public static BigDecimal e(int precision)
- {
- return e(0.0, precision);
- }
- public static BigDecimal e(double epsilon, int precision)
- {
- BigDecimal ret = new BigDecimal(0), add, big_one = new BigDecimal(1), big_epsilon = new BigDecimal(epsilon);
- long i = 0;
- if(epsilon < 0) epsilon = -epsilon;
- if(precision < 0) precision = -precision;
- do
- {
- add = big_one.divide(factorial(i++), precision, RoundingMode.HALF_UP);
- ret = ret.add(add);
- }
- while(add.compareTo(big_epsilon) > 0);
- return ret;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement