问题
Writing floats to a CSV writes some of them like this: 2.0628800997782577e-05
c = csv.writer(open(file, "wb"))
c.writerow([var1, var2])
What I've tried:
- I have already tried var1**8 following other answers on StackOverflow, but this simply raises them to the power of 8.
- I have also tried Decimal(var1), but this does not suppress the scientific notation.
This makes it difficult to process the output in excel afterwards as it's recognized as text and not a number. How can I print it in non-scientific, decimal notation?
回答1:
'%f' % your_var
Or to control the precision:
'%0.10f' % your_var
回答2:
Use string formatting:
c.writerow(['{:f}'.format(var) for var in (var1, var2)]
来源:https://stackoverflow.com/questions/11605235/supress-scientific-notation-when-writing-python-floats-to-files