2015-06-26 82 views
0

我正在尋找Jython中的功能,即浮點輸出只有在不是整數時纔有小數點。只有在需要時浮點數的Jython小數位數

我發現:

>>> x = 23.457413902458498 
>>> s = format(x, '.5f') 
>>> s 
'23.45741' 

>>> y=10 
>>> format(y, '.2f') 
'10.00' 

在這種情況下,我想有隻

'10' 

你能幫助我嗎?

謝謝你的幫助!

回答

1

這將在Jython的2.7工作,其中x是要格式化您的浮動和其他後的值將設置你的小數點後的位數:

"{0:.{1}f}".format(x, 0 if x.is_integer() else 2) 
1

嘗試「G」(表示「一般」)爲浮點數格式規範(docs):

>>> format(23.4574, '.4g') 
'23.46' 
>>> format(10, '.4g') 
'10' 

注意,給出的數字是不小數點後的數字,它的精度(顯著位數),這就是爲什麼在第一實施例保持4位從輸入。

如果要指定小數點後的數字,但除去尾隨零,直接實現這一點:

def format_stripping_zeros(num, precision): 
    format_string = '.%df' % precision 
    # Strip trailing zeros and then trailing decimal points. 
    # Can't strip them at the same time otherwise formatting 10 will return '1' 
    return format(num, format_string).rstrip('0').rstrip('.') 

>>> format_stripping_zeros(10, precision=2) 
'10' 
>>> import math 
>>> format_stripping_zeros(math.pi, precision=5) 
'3.14159' 
相關問題