2017-05-04 237 views
0

我在我的表單中有一個浮點字段,將其視爲field_x。基於此field_x我有一些計算。 畢竟如果field_x在十進制後有n個數字,結果也應該有n個數字。Python:計算小數點後的位數給出了錯誤的答案

例如: field_x = 0.00000001(N小數點後數字)

結果=一些計算

如果結果= 22 我必須將其顯示爲22.00000000(小數點後N個數位)

len(str(number-int(number))[1:])給出了答案

**這裏的數量可以0.00101,0.110,0.787等

但對於像0.000001其給予不正確的答案

+0

對於你的例子字符串是'1e-06'!錯誤的方法。 –

+0

是我知道..爲什麼要求回答 – PsP

+0

花車有一個內部的表示,可能會讓你感到驚訝。所以當輸入0.00001到一個'decimal.Decimal'對象時,我得到了'0.000010000000000000000818030539140313095458623138256371021270751953125' ......很難回答這個問題。如果從文件中輸入/讀取數字,則使用字符串表示法計算您的值,不要將其轉換爲浮點數。 –

回答

0

一些值我have'nt找到此問題的妥善答案的任何地方。 要麼我們需要使用雙精度,這是不可能在odoo或我們必須轉換爲字符串,並得到指數長度。 我選擇了第二個。 謝謝