Я использую Python для чтения файла и преобразования числового значения, записанного как строка для float. Я наблюдаю странное преобразование:Преобразование из строки в поплавок числовых значений (научная нотация)
a="-5.970471694E+02"
b = float(a)
b
>> -597.0471694
bb = np.float64(a)
bb
>> -597.04716940000003
e="-5.970471695E+02"
ee = np.float64(e)
ee
>> -597.0471695
ee-bb
>> -9.9999965641472954e-08
Что является причиной термина «0000003» в конце bb
. Почему я не наблюдаю то же самое для ee
. Это действительно проблема? Я думаю, что эта проблема связана с точностью с плавающей точкой, но результат, кажется, возмущен, прежде чем я начну использовать переменные ...
что-то кажется неправильным с вашим примером >>> а = "- 5.970471694E + 09" >>> Ь = поплавка (а) >>> б -5970471694,0 >>> что я получаю ... addendum, я использую python 3.4.1, какую версию вы используете? –
В вашем примере 'b' должен быть' -5970471694.0', а не '-597.04716940000003'. – acdr
@ DanPatterson да да .... Я исправлю это !! Извините – Guuk