我正在尋找Jython中的功能,即浮點輸出只有在不是整數時纔有小數點。只有在需要時浮點數的Jython小數位數
我發現:
>>> x = 23.457413902458498
>>> s = format(x, '.5f')
>>> s
'23.45741'
但
>>> y=10
>>> format(y, '.2f')
'10.00'
在這種情況下,我想有隻
'10'
你能幫助我嗎?
謝謝你的幫助!
我正在尋找Jython中的功能,即浮點輸出只有在不是整數時纔有小數點。只有在需要時浮點數的Jython小數位數
我發現:
>>> x = 23.457413902458498
>>> s = format(x, '.5f')
>>> s
'23.45741'
但
>>> y=10
>>> format(y, '.2f')
'10.00'
在這種情況下,我想有隻
'10'
你能幫助我嗎?
謝謝你的幫助!
這將在Jython的2.7工作,其中x是要格式化您的浮動和其他後的值將設置你的小數點後的位數:
"{0:.{1}f}".format(x, 0 if x.is_integer() else 2)
嘗試「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'