Python和Floats - 仅打印整数

时间:2012-04-04 11:57:04

标签: c++ python floating-point

当没有额外的精度来表示数字时,Python中是否有一种方法只能打印浮点数的整数部分?例如,浮点数1.0。其他一些语言默认执行此操作。以下是一些例子:

在C ++中,此代码打印1,而不是1.0:

int main()
{ 
    float f = 1.0;
    std::cout << f << "\n";

    return 0;
}

./a.out 
1

但是,在Python中,此代码打印1.0:

f = 1.0

print type(f)
<type 'float'>

print f
1.0

我希望Python代码只打印1而不是1.0,只需要完全代表数字就可以了。

2 个答案:

答案 0 :(得分:5)

使用g格式化选项:

print "{:g}".format(1.0)

print "%g" % 1.0

(第一个选项仅适用于Python 2.7。)

这与默认配置中的std::cout非常相似。它只会打印有限数量的数字,就像std::cout

一样

答案 1 :(得分:0)

模运算符应适用于所有Python版本:

>>> f = 1.0
>>> if f % 1 == 0:
...     print int(f)
... else:
...     print f
... 
1
>>>