Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert scientific notation to decimal - python

How do I convert a scientific notation to floating point number? Here is an example of what I want to avoid:

Python 2.7.3 (default, Apr 14 2012, 08:58:41) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a=[78.40816326530613, 245068094.16326532]
>>> print a[0]/a[1]
3.19944395589e-07
>>> print float(a[0]/a[1])
3.19944395589e-07
>>> print float(a[0])/float(a[1])
3.19944395589e-07
like image 670
pistal Avatar asked Jun 06 '13 12:06

pistal


People also ask

How do you convert scientific notation to decimal in Python?

We can easily format to raw decimal places with "%f" which is same as "%. 6f" by default. "%f" % 8.99284722486562e-05 produces '0.000090' . "%f" % 0.01 produces '0.010000' .

How do you take numbers out of scientific notation in Python?

How to suppress scientific notation when printing float values? There is a simple technique to suppress scientific notation when using float values by using the %f flag in string. This will convert the number into a floating-point number and then print it. Note that this method has a precision of 10^-6 only.


3 Answers

Use string formatting:

>>> "{:.50f}".format(float(a[0]/a[1]))
'0.00000031994439558937568872208504280885144055446290'
like image 191
Ashwini Chaudhary Avatar answered Oct 15 '22 11:10

Ashwini Chaudhary


The scientific notation is just a convenient way of printing a floating point number. When there are a lot of leading zeros as in your example, the scientific notation might be easier to read.

In order to print a specific number of digits after a decimal point, you can specify a format string with print:

print 'Number is: %.8f' % (float(a[0]/a[1]))

Or you can use format() as in the other answers.

like image 34
Dhara Avatar answered Oct 15 '22 09:10

Dhara


That is already a floating point number, it just prints in a friendly format. If you want to show a certain amount of decimal places when printing, use format:

>>> print format(a[0]/a[1], '.65f')
0.00000031994439558937568872208504280885144055446289712563157081604
like image 20
jamylak Avatar answered Oct 15 '22 09:10

jamylak