das Dezimalsystem Modul verwenden:
>>> import decimal
>>>
>>> a = decimal.Decimal('0.9999965341102361')
>>> b = decimal.Decimal('3.465889763814134E-6')
>>> a
Decimal('0.9999965341102361')
>>> b
Decimal('0.000003465889763814134')
>>> a*10
Decimal('9.9999653411023610')
>>> b*10
Decimal('0.000034658897638141340')
>>> print(a)
0.9999965341102361
>>> print(b)
0.000003465889763814134
>>> print('{:1.20e}'.format(b))
3.46588976381413400000e-6
>>>
decimal.Decimal Objekte in einem numpy Array
>>> import decimal
>>> import numpy as np
>>> x = decimal.Decimal('0.9999965341102361')
>>> y = decimal.Decimal('3.465889763814134E-6')
>>> z = decimal.Decimal('1.23456789e-2')
>>>
>>> a = np.array((x, y, z))
>>> a
array([Decimal('0.9999965341102361'), Decimal('0.000003465889763814134'),
Decimal('0.')], dtype=object)
>>>
>>> b = np.float64((x,y,z))
>>> b
array([ 9.99996534e-01, 3.46588976e-06, 1.23456789e-02])
>>> b[2], a[2]
>>>
(0., Decimal('0.'))
>>>
>>> a*2
array([Decimal('1.9999930682204722'), Decimal('0.000006931779527628268'),
Decimal('0.0246913578024691357802')], dtype=object)
>>> b*2
array([ 1.99999307e+00, 6.93177953e-06, 2.46913578e-02])
>>>
>>> a*b
Traceback (most recent call last):
File "<pyshell#50>", line 1, in <module>
a*b
TypeError: unsupported operand type(s) for *: 'Decimal' and 'float'
>>>
Sieht aus wie ein numpy Array von Typ Objekt Dezimal.Decimal-Objekte enthalten. Je nachdem, was Sie tun möchten, könnten sie funktionieren.
Diese Zahlen werden für mich nicht auf Python 3.5 gerundet – ForceBru
Python 'float' Typ speichert 15 oder 16 signifikante Dezimalziffern. Wenn Sie mehr als das wollen, überprüfen Sie das 'decimal' Modul, das beliebig viele behandeln kann. –