Calculate the constant e to 14+ decimal places using integer maths.
Hi guys...
I am loving this integer maths thing.
64 bit systems are certainly easier than 32 bit, but hey, I don't intend to leave out my fav' platform.
Using one of the 'Brothers' methods, URL inside the code.
Code:
#!/bin/sh
#
# #!/usr/local/bin/dash
# e_constant.sh
# Brother's formula [2].
# http://www.brotherstechnology.com/math/e-formulas.html
# e=2.718281828459045 from Python 3.8.0.
# Google's value, e=2.71828182846.
#
# For *NIX 64 bit or greater systems, 32 bit systems commented out.
# (Also tested on AMIGA OS_3.1 using ADE the UNIX emulator and ksh88.)
echo ""
echo "Calculate e to 14+ decimal places, 64 bit, (7+ decimal places, 32 bit),"
echo "integer maths inside 'dash' or 'sh'."
echo ""
initial_e=0
# 32 bit version for AMIGA ADE.
# e=200000000
# Default 64 bit version.
e=2000000000000000
k=0
factorial=1
diff=$(( e - initial_e ))
while [ ${diff} -gt 1 ]
do
initial_e=${e}
k=$(( k + 1 ))
factorial=$(( factorial * 2 * k * (2 * k + 1) ))
# 32 bit version.
# e=$(( e + (((2 * k + 2) * 100000000) / factorial) ))
# Default 64 bit version.
e=$(( e + (((2 * k + 2) * 1000000000000000) / factorial) ))
diff=$(( e - initial_e ))
done
# 32 bit version.
# printf "%.8f\n" $(( e ))e-8
# Default 64 bit version.
result=$( printf "%.15f\n" $(( e ))e-15 )
# Result: 2.718281828459041
echo "${result}"
echo ""
echo "Python 3.8.0 value, e = 2.718281828459045."
echo "Number of iterations = ${k}."
echo ""
Result in 64 bit mode, my usual platform.
Code:
Last login: Sun Oct 13 15:21:17 on ttys000
AMIGA:amiga~> cd Desktop/Code/Shell
AMIGA:amiga~/Desktop/Code/Shell> ./e_constant.sh
Calculate e to 14+ decimal places, 64 bit, (7+ decimal places, 32 bit),
integer maths inside 'dash' or 'sh'.
2.718281828459041
Python 3.8.0 value, e = 2.718281828459045.
Number of iterations = 9.
AMIGA:amiga~/Desktop/Code/Shell> _
These 2 Users Gave Thanks to wisecracker For This Post:
I have a perl script that reports the avg time of a application call and the total number of calls. This works fine, however I would like to trim the number of decimal places reported from 12 to like 3 and I don't know how.
Any suggestions? Here is what I use to get the avg time...
for $eRef (... (2 Replies)
i have a script in which awk prints "($2-1700)/10000"
and the answer is -0.07,but i want the answer in 4 decimal places.
that is -0.0700.
How can i sue awk to get my results in four decimal places (4 Replies)
i need to multiplay a number with 1.00.. so that the output should contain two decimal places at end..
for example...
236 * 1.00 = 236.00
245.8 * 1.00 = 245.80
but when i perform multiplication it shows output as.
236
245.8
can anyone help me to get the actual output of... (11 Replies)
Hi All
I've made a few scripts which using GDAL extract the value of a pixel within a given raster. The purpose is to work out the combine value of every pixel. I thought there may have been an easier way to do this but alas!
The code below extracts the pixel value at position X Y. The... (3 Replies)
I am trying to perform arithmetric, for example, to increment the value of variable $a (say 3) by 0.05 but when I tried the following expression
let a=a+0.05
or a=$((a+0.05))
both returned
3.0499999999999998
I want to keep 2 decimal places so it returns 3.05 instead. (6 Replies)
Please help me in rounding up value upto 2 decimal palces using sed command
#!/usr/bin/bash
a=15.42
b=13.33
c=`echo $a*$b |bc -l`
echo $c
above code is is giving output "205.5486" but i want the output as "205.55"
Thank you... (15 Replies)
I have input file like below,
201424|9999|OSS|622010|RGT|00378228764
201424|8888|OM|587079|RGT|00284329675
201424|7777|OM|587076|RGT|00128671024
201424|6666|OM|581528|RGT|00113552084
Output should be like below, should add decimal (.) from last 4 digits.
... (2 Replies)
I used the below script to Sum up a field in a file based on some unique values. But the problem is when it is summing up the units, it is truncating to 2 decimals and not 6 decimals as in the input file (Input file has the units with up to 6 Decimals – Sample data below, when the units in the 2... (4 Replies)