2017-09-18 82 views
0

在Python format()函數中是否有任何格式說明符可用於從小數部分中獲取指定數量的數字而沒有點?Python格式()函數中是否有任何格式說明符來獲取沒有點的小數部分?

例如,我想從浮標0.86只得到86

編輯: 我現在做的解決方法是這樣的:

"{:.0f}".format(num*100) 

答案到目前爲止提出這樣的一個或使用字符串操作的解決方法。我知道這些解決方案。我所要求的是,如果只有格式說明符才能做到這一點。

+4

只需乘以100? – Li357

+0

'「{0:g}」。格式(num).split(「。」,1)[ - 1]'是一種方法....我猜 –

+0

@AndrewLi,這是我現在遵循的解決方法解決這個問題。 – pgmank

回答

2

我沒有意識到str.format中有什麼特定的東西可以用來完成這個任務,但這是我如何去做的。

您可以將浮點數轉換爲一個整數,該整數會將浮點數右移十進位。然後減去它們,你應該只得到小數部分。

my_float = 12.12121200 

print("Just the decimal: {0}".format(
    int(str(my_float - int(my_float)).split(".")[1]) 
)) 
+0

這將打印「0.12121199999999988」,即帶點。我希望結果排除'0'前綴。我更喜歡的結果是:'12121199999999988'。 – pgmank

+0

我繼續並更正了我的答案@pgmank – Kyle

0

你可能.replace

decimal = .85 
int(str(decimal).replace('.', '')) 

這不是一個.format思想,希望它可以幫助反正。

+0

不會'替換'只適用於'str'類型? – Mangohero1

+0

@ mangoHero1 ahhh!我忘了把它變成一串... – Nova

+0

現在好了。 :) – Mangohero1