0

当不需要额外的精度来表达数字时,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,这就是完全表示数字所需的全部内容。

4

2 回答 2

5

使用g格式化选项:

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

或者

print "%g" % 1.0

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

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

于 2012-04-04T11:58:51.600 回答
0

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

>>> f = 1.0
>>> if f % 1 == 0:
...     print int(f)
... else:
...     print f
... 
1
>>> 
于 2012-04-04T12:00:44.440 回答