2014-09-04 60 views
2

浮動:鑄造浮到字符串沒有科學記數法

fl = 0.000005 

強制轉換爲Stringstr(fl)=='5e-06'。但是,我希望它能夠輸出爲str(fl)='0.000005',以便輸出到CSV的目的。

我該如何做到這一點?

+0

你需要使用'STR()'或者你可以這樣做' '{:F}'。格式(佛羅里達州)'? – grc 2014-09-04 12:30:46

+0

as grc has''{:f}「。format(fl)'會做你想做的事 – 2014-09-04 12:32:22

+0

@PadraicCunningham @grc我得到異常'Traceback(最近調用最後一個): 文件」「,第1行,in ValueError:格式爲零的長度字段名稱 ' – user2763361 2014-09-04 12:32:46

回答

1

你可以只使用標準的字符串格式化選項說明精度你想

>>> fl = 0.000005 
>>> print '%.6f' % fl 
0.000005 
+0

如果我只是想讓它達到我指定'fl'所用的精確度,該怎麼辦。所以,如果我設置了'fl = 0.00214',我想'string ='0.00214',或者如果我設置了'fl = 0.0000000006',我想'string ='0.0000000006'。 – user2763361 2014-09-04 12:36:17

+0

@ user2763361:https://docs.python.org/2/tutorial/floatingpoint.html – 2014-09-04 12:44:33

1

使用

fl = 0.00005 
s = str('%8.5f' % fl) 
print s, type(s) 

給人

0.00005 <type 'str'> 

如果你不想要額外的數字,使用%g

fl = 0.0005 
s = str('%g' % fl) 
print s, type(s) 

fl = 0.005 
s = str('%g' % fl) 
print s, type(s) 

給人

0.0005 <type 'str'> 
0.005 <type 'str'> 
+1

'%g'會給出像0.000005這樣的數字的科學記數法。順便說一句,你的'str'調用是不需要的。 – interjay 2014-09-04 12:42:06