什么是C类型的Python等价的float,double和long?

Sam*_*nce 0 c python floating-point double long-integer

这些C类型的Python等价物是什么:

float
double 
long
Run Code Online (Sandbox Code Playgroud)

我想float在以上三种形式中代表一种.

Wil*_*ill 5

我相信你的意思是类型,而不是功能.在C中,a double只是一个双精度float(意味着更准确地表示较小的数字).在Python中,它只是一个float.类似地,a long(只是)int存储更大的数字.

在Python 2,还有int,longfloat.但是,Python自动int升级到long何时增长sys.intmax.这意味着long在Python 中使用没有任何意义.它会long在需要时自动变为.A float表示为double内部.

简短的回答是只使用intfloat不担心底层实现.Python摘录了你的东西.

您可以像这样int将a 转换为float(和返回):

#!/usr/bin/python

number = 45
real_number = 3.14159265359

number_as_float = float(number)
real_number_as_int = int(real_number)
Run Code Online (Sandbox Code Playgroud)

在此处查看有关标准Python类型的更多信息.

  • 你不需要"在大多数平台上":Python`float`总是*内部存储为C` double`(假设我们正在谈论CPython).当然,C double的格式取决于平台,但在当前主流平台上几乎总是IEEE 754 binary64. (2认同)
  • 实际上,那部分文档并没有过时。这是错误的。:-) 如果我找到足够的能量,我会提交一个修复程序。`sys.float_info` 也直接基于 `DBL_EPSILON`、`DBL_MAX` 等宏;源代码中没有内置用于将 `double` 替换为另一种浮点类型的工具(尽管这很酷)。 (2认同)