w3resource

Python Projects: Compute the value of e to n number of decimal places

Python Project-2 with Solution

Create a Python project to get the value of e to n number of decimal places.
Note: Input a number and the program will generate e to the 'nth digit.

Sample Solution -1 :

Python Code:

# https://github.com/microice333/Python-projects/blob/master/n_digit_e.py
# find e to nth digit by brothers' formulae: http://www.intmath.com/exponential-logarithmic-functions/calculating-e.php
import decimal


def factorial(n):
    factorials = [1]
    for i in range(1, n + 1):
        factorials.append(factorials[i - 1] * i)
    return factorials


def compute_e(n):
    decimal.getcontext().prec = n + 1
    e = 2
    factorials = factorial(2 * n + 1)
    for i in range(1, n + 1):
        counter = 2 * i + 2
        denominator = factorials[2 * i + 1]
        e += decimal.Decimal(counter / denominator)
    return e


while True:
    n = int(input("Please type number between 0-1000: "))
    if n >= 0 and n <= 1000:
        break

print(str(compute_e(n))[:n + 1])

Sample Output:

Please type number between 0-1000: 8
2.7182818

Flowchart:

Flowchart: Python Project Number 2-1

 

Sample Solution -2 :

Python Code:

""""Find e to the Nth Digit
https://gist.github.com/aseeon/3f06d95f995fde7adfc2
Enter a number and have the program generate e up to that many decimal places.
Keep a limit to how far the program will go"""

from math import e

def e_with_precision(n):
    """Return euler's number to the n-th decimal place
    :param n: number of decimal places to return
    :type n: int
    :return: euler's number with n decimal places
    :rtype: str
    """
    return '%.*f' % (n, e)

if __name__ == '__main__':
    # there is no do while loop in python, so we need to improvise
    correct_input = False
    while not correct_input:
        # ask until you get correct input
        print('Precision must be between 1 and 51')
        precision = int(input('Number of decimal places: '))
        if 51 >= precision > 0:
            correct_input = True
    print(e_with_precision(precision))

Sample Output:

Precision must be between 1 and 51
Number of decimal places: 5
2.71828

Flowchart:

Python Project Number 2-2

 

Sample Solution -3 :

Python Code:

"""
Project: Mega Projects List - Find e to the Nth Digit
Author: Mandeep Bhutani
https://github.com/mandeep/Sample-Projects/blob/master/FindE.py
Problem: Just like the previous problem, but with e instead of Pi.
Enter a number and have the program generate e up to that many decimal places.
Keep a limit to how far the program will go.
References: http://mathworld.wolfram.com/e.html; https://docs.python.org/2/library/decimal.html
"""
import decimal  # Use of decimal module due to increased precision compared to float()

factorial = 1  # The factorial is defined as 1 in order to find e from a nested series.

e = 2  # e is defined as 2 in order to begin the sequence of 2.xxxx.

for number in range(2, 50): # The larger the range, the higher degree of accuracy for euler's number.
    # The two lines below perform the nested series calculation in order to find e.
    factorial *= number
    e += decimal.Decimal(1.0) / decimal.Decimal(factorial)

# Now that e has been calculated, the user can input the number of decimal places desired.

decimal_places = int(input("Please enter how many decimal places you would like returned for e: "))
while decimal_places > 20:
    print("Sorry, cannot compute fractional part greater than 20.")
    decimal_places = int(input("Please enter how many decimal places you would like returned for e: "))
else:
    print(str(e)[0:decimal_places+2])     # The '+2' slice accounts for the beginning two characters of '2.'

Sample Output:

Please enter how many decimal places you would like returned for e: 5
2.71828

Flowchart:

Flowchart: Python Project Number 2-3

 

Sample Solution -4 :

Python Code:

#https://github.com/rlingineni/PythonPractice/blob/master/eCalc/eCalculate.py
import math 

def CalculateE(roundVal):

		someE = round(math.e,roundVal);
		e = str(someE)
		someList = list(e)
		return someE;
roundTo = int(input('Enter the number of digits you want after the decimal for e: '))
try:
	roundint = int(roundTo);
	print(CalculateE(roundint));
except:
	print("You did not enter an integer");

Sample Output:

Enter the number of digits you want after the decimal for e: 5
2.71828

Flowchart:

Flowchart: Python Project Number 2-4

 

Improve this sample solutions and post your code through Disqus



Follow us on Facebook and Twitter for latest update.