Python 如果值是整数,如何将浮点格式设置为整数。也就是说,将13.0显示为13,但将13.5显示为13.5
[使用Python 3.x] 我试图显示二维直线方程。我假设系数或常数是浮动的,因为它们可能是浮动的。但是,如果它们是整数,我想将它们显示为整数 也就是说,而不是 x+3.0y=13.0 我想展示一下 x+3y=13 但是, x+3.5y=13.5 应该保持原样Python 如果值是整数,如何将浮点格式设置为整数。也就是说,将13.0显示为13,但将13.5显示为13.5,python,python-3.x,number-formatting,Python,Python 3.x,Number Formatting,[使用Python 3.x] 我试图显示二维直线方程。我假设系数或常数是浮动的,因为它们可能是浮动的。但是,如果它们是整数,我想将它们显示为整数 也就是说,而不是 x+3.0y=13.0 我想展示一下 x+3y=13 但是, x+3.5y=13.5 应该保持原样 如何进行这种条件格式设置 可能有更有效的方法来实现这一点,但是使用ceil值进行分支可以正确工作: import math number1 = 3.0 number2 = 3.5 def integral_formatting(n)
如何进行这种条件格式设置 可能有更有效的方法来实现这一点,但是使用
ceil
值进行分支可以正确工作:
import math
number1 = 3.0
number2 = 3.5
def integral_formatting(n):
return n if n != math.ceil(n) else math.ceil(n)
假设函数只传递一个精确的乘数(没有未知变量),则输入和输出为字符串:
def simplifyFloat(str):
f = float(str)
if f % 1 == 0: #if f has some floating point this is going to be false
f = int(f)
return str(f)
使用方法:
equation = '2.0x + 3.5y + 2'
x_part, o, y_part, o, const_part = equation.split(' ') # o variables for dumping operators
# [:-1] before string means you get rid of the last letter, which is 'x' and 'y'
print(simplifyFloat(x_part[:-1])) # output '2'
print(simplifyFloat(y_part)[:-1]) # output '3.5'
我能想到的一个有效方法是,根据具体情况,生成一个返回整数或浮点的函数。函数可以是
def check(x):
if int(x) == x:
return int(x)
else:
return float(x)
现在,任何数字都可以放入方程中,如check(1.0)*x+check(13)*y=check(13.5)
。这将导致1x+13y=13.5
。希望这有帮助
def check(x):
if int(x) == x:
return int(x)
else:
return float(x)