2013-07-19 108 views
4

我有一个python数学小问题。所以,我有几个变量,xyanswerPython 2:ValueError:无效文字为int()与基地10:'20.0'

>>>x = 20 
>>>y = 21 
>>>answer = x/y * 100 
>>>answer 
0 

所以它打印出空。好吧,我知道它打印出来是空的,因为我不得不打印x = 20.0而不是打印x = 20

但无论如何,我需要它打印出来:

95.2380952381 

我怎么能这样做?

注意:我不能只写x = 20.0

同时,我试图做到这一点是这样的:

x1 = str(x) + '.0' 
result = int(x1)/y * 100 

但是Python的给我一个错误:

ValueError: invalid literal for int() with base 10: '20.0' 

那么如何才能解决这个问题?

+0

null不是一回事0 – roippi

+0

需要注意的是Python的3.x的将输出'95.23809523809523',而Python的2 .x将输出'0' – blablatros

回答

2

使用from __future__ import division使全部师浮法师。

或者,使用float()代替int()解释字符串作为一个浮点数来代替:

answer = float(x)/y * 100 
0

只需使用用途,而不是

>>> answer = float(x)/y * 100 
0

float(x)/y*100int()

但这只是修正了这个错误,但是你试图通过这种方式来完成
answer = x/y*100.

0

的Python认为你正在做的整数除法(因为xy是整数)。为了解决这个问题,你可以使用float()转换的x一个或y浮动:

answer = float(x)/y * 100 
相关问题