我在Jython中搜索功能,当浮点数不是整数时,它的输出只有小数点。
我找到了:
>>> x = 23.457413902458498
>>> s = format(x, '.5f')
>>> s
'23.45741'
但是
>>> y=10
>>> format(y, '.2f')
'10.00'
在这种情况下,我想只有
'10'
你能帮助我吗?!
感谢您的帮助!!!
答案 0 :(得分:1)
这将在Jython 2.7中起作用,其中x是要格式化的浮点数,而else之后的值将设置小数位数:
"{0:.{1}f}".format(x, 0 if x.is_integer() else 2)
答案 1 :(得分:1)
试试'' (对于"一般")浮点数的格式规范(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'