Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果值是整数,如何将浮点格式设置为整数。也就是说,将13.0显示为13,但将13.5显示为13.5_Python_Python 3.x_Number Formatting - Fatal编程技术网

Python 如果值是整数,如何将浮点格式设置为整数。也就是说,将13.0显示为13,但将13.5显示为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)

[使用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):
    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)