Nic*_*kel 2 floating-point int python-3.5
说我有一个浮点数。如果它是整数(例如1.0、9.0、36.0),我要删除“ .0(小数点和零)”并写入stdout。例如,结果将是1、9、36。如果浮点数是有理数,例如2.5335和95.5893,我希望输出是输入时的样子,即2.5335和95.5893。有什么聪明的方法吗?
只有数字是否为.0或小数点后的其他数字才重要。我可以说的问题是:我怎么知道浮点数是否实际上是整数?
我想用它来决定目录名。例如,如果我输入9.0和2.45,则创建两个目录dir9和dir2.45。
mel*_*rum 11
您可以使用字符串格式
>>> "%g" % 1.1
'1.1'
Run Code Online (Sandbox Code Playgroud)
>>> "%g" % 1.0
'1'
Run Code Online (Sandbox Code Playgroud)
您可以结合之前的 2 个答案:
formatNumber = lambda n: n if n%1 else int(n)
Run Code Online (Sandbox Code Playgroud)
>>>formatNumber(5)
5
>>>formatNumber(5.23)
5.23
>>>formatNumber(6.0)
6
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用 fstrings 来做到这一点,例如
print(f'{1.0:g},{1.2:g}') # Output: 1,1.2
Run Code Online (Sandbox Code Playgroud)
这是一个以所需方式格式化数字的功能:
def formatNumber(num):
if num % 1 == 0:
return int(num)
else:
return num
Run Code Online (Sandbox Code Playgroud)
例如:
formatNumber(3.11111)
Run Code Online (Sandbox Code Playgroud)
退货
3.11111
formatNumber(3.0)
退货
3
| 归档时间: |
|
| 查看次数: |
4115 次 |
| 最近记录: |