如何在Python中获得浮点数?

时间:2018-11-18 03:14:38

标签: python-2.7

在下面的代码中,我总是将结果作为最接近的整数。但是我想将除法结果作为浮点数,即12/5 = 1.4,而不是我在程序中得到的2。我正在使用python2.7

"""Given division of two numbers, the result will print out """
try:
    divident = int(raw_input("Enter the divident: "))
    divisor = int(raw_input("Enter the divisor: "))
    print (" %d devided by %d is %f: " % ( divident, divisor, divident / divisor))

except(ValueError, ZeroDivisionError):
    print ("Something went wrong!")

3 个答案:

答案 0 :(得分:1)

基本解释是,在几乎所有编程语言中,将2个数字类型T的变量相除会返回该类型T的值。 整数除法由处理器作为欧氏除法执行,返回商(作为整数)。

打印格式%f不会为您执行变量类型转换。

我强烈建议您阅读建议的重复问题,以进一步了解python行为。

示例:

12 = (2 * 5) + 2 => 12 / 5 = 2     12 % 5 = 2
12 = (1 * 7) + 5 => 12 / 7 = 1     12 % 7 = 5

在python中:

Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 12/5
2
>>> 12%5
2
>>> 12/7
1
>>> 12%7
5

如果要获取浮点数,请按照https://stackoverflow.com/users/8569905/banghua-zhao的建议进行操作。

进行浮点转换,然后执行除法。然后,处理器将使用浮点除法并返回浮点数。 如下面的注释中所指出的,如果2个操作数具有不同的类型,则运算符计算将使用最多的 restrictive 类型:float将优先于整数。在下面的示例中,一个浮标就足够了。

>>> float(12)/float(5)
2.4

请注意,%运算符仍会执行欧几里得除法并为您提供浮点运算结果

>>> float(12)%float(5)
2.0
>>> float(12)%float(7)
5.0

答案 1 :(得分:0)

dividentdivisor都是int类型,因为您使用int()方法将raw_input()的值转换为int类型。

因此,divident / divisor也是一个int类型。在除法之前,您需要将int转换为float(例如:float())。

"""Given division of two numbers, the result will print out """
try:
    divident = int(raw_input("Enter the divident: "))
    divisor = int(raw_input("Enter the divisor: "))
    print (" %d devided by %d is %f: " % ( divident, divisor, float(divident) / float(divisor)))

except(ValueError, ZeroDivisionError):
    print ("Something went wrong!")

输出:

Enter the divident: 12
Enter the divisor: 5
 12 devided by 5 is 2.400000: 

请注意,如果您输入的内容不是整数,请考虑在开始时将它们转换为浮点型:

divident = float(raw_input("Enter the divident: "))
divisor = float(raw_input("Enter the divisor: "))

答案 2 :(得分:0)

由于输入类型确定输出类型,因此必须将输入类型声明为float而不是int。 您应该尝试:

a=float(input('your prompt string'))
b=float(input('your 2nd prompt'))
print(a/b)