算术使用小数python

时间:2014-02-26 18:36:00

标签: python jython

我在变量中保存一个数字然后我想将该数字乘以0.5。但是,它似乎改变了变量的类型,我的变量是变成了double还是某种东西? (我刚开始学习python)

CODE& ERROR:

  a = pickAFile()
  b = makePicture(a)
  c = getWidth(b)
  d = getHeight(b)
  e = (c * 0.5)
  f = (d * 0.5)
--> (problem line) newPicture = makeEmptyPicture(e,f)

错误:尝试使用无效类型的参数调用函数。这意味着你做了一些事情,比如尝试将字符串传递给期望整数的方法。

4 个答案:

答案 0 :(得分:2)

我能找到的makeEmptyPicture示例似乎需要整数宽度和高度。因此,您应该使用

makeEmptyPicture(int(e), int(f))

或使用

进行整理
makeEmptyPicture(int(math.ceil(e)), int(math.ceil(f)))

请注意,math.ceil返回一个浮点数,因此您需要将其强制转换为调用中的int。

答案 1 :(得分:1)

Python变量没有设置数据类型,所以是的,Python可以/将根据您分配给它的内容更改变量的数据类型。

您可以通过以下方式查看变量的当前类型:

type(var_name)

为了能够专门回答您的问题,请向我们展示makeEmptyPicture()的定义。

答案 2 :(得分:0)

这是因为当您将奇数乘以0.5时,您将得到非整数结果。您可能希望使用math.ceilmath.floor向上舍入或向下舍入,然后将该结果转换为具有int函数的整数。

答案 3 :(得分:0)

你应该使用浮动:

    e=float(whatever you want inside)

这样它将允许python使用小数,否则它将它们舍入。

,您应该为其他变量使用浮点数而不是整数。