【问题标题】:What situation makes a float-point like “1.0” (with .0) an integer?什么情况下使像“1.0”(带有 .0)这样的浮点数成为整数?
【发布时间】:2019-02-05 02:43:35
【问题描述】:

我想知道是否有整数这样的东西,即使它最后有一个 .0 小数。它被认为是浮点数还是整数?

【问题讨论】:

  • @lurker - Python 不是静态类型的,但它是强类型的。
  • @TigerjawkT3 感谢您的澄清。我不确定我有正确的术语。
  • 不知何故类似的问题stackoverflow.com/questions/54450129/… 这种问题在考虑到javascript算术实现的情况下是有意义的。

标签: python floating-point integer


【解决方案1】:

它仍然是一个浮动。例如,做

print(type(1.0))

它打印float。一般来说,任何带小数点的都是float

【讨论】:

    【解决方案2】:

    在编程语言中,“浮点数”与“整数”的含义是在机器中具有特定的二进制表示。

    特别是在 Python 中,它不是静态类型的,如果你写 x = 1.0 那么 x 将是一个浮点值。它使用浮点表示形式存储在内存中,例如IEEE-754。如果你写x = 1,那么 x 将是一个整数。您正在告诉 Python 您想要 1 的哪种表示形式。如果您使用 C 编写并且编写 int x = 1.0,那么 x 仍然是一个整数,因为编译器知道您希望 x 是一个整数,并且编译器会对其进行转换或生成代码来执行此操作.

    【讨论】:

    • 严格来说,即使内部表示相同,也会出现不同的行为。类型控制行为。当然,理解内部表示也很重要:浮点行为与有效位数有限这一事实紧密相关。
    猜你喜欢
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多