ERLANG-默认浮点大小

ERLANG-默认浮点大小,erlang,floating-point,integer,Erlang,Floating Point,Integer,有没有办法防止像10000000这样的数字被自动转换成浮点数?没有整数被自动转换成浮点数: 只需在erlang shell中键入: 1> 10000000. 10000000 2> 1000000000000000000000000000000000. 1000000000000000000000000000000000 3> 1000000000000000000000000000000000 + 1. 1000000000000000000000000000000001

有没有办法防止像10000000这样的数字被自动转换成浮点数?

没有整数被自动转换成浮点数:

只需在erlang shell中键入:

1> 10000000.
10000000
2> 1000000000000000000000000000000000.
1000000000000000000000000000000000
3> 1000000000000000000000000000000000 + 1.
1000000000000000000000000000000001

有两种情况下会发生类似自动转换的情况:

  • 比较数字是否相等时(可以使用
    =:=
    防止自动转换):

  • 另外,
    /
    的工作原理与C和类似语言不同,并且总是返回一个浮点(使用
    div
    进行整数除法)


  • 但在这两种情况下,数字的大小都不重要。

    自动转换为浮点是什么意思?我使用过的所有整数无论有多大都始终是整数。您能告诉我您认为发生这种情况的上下文吗?使用/除法将自动转换,而div将生成整数。
    1> 1 == 1.0.
    true
    2> 1 =:= 1.0.
    false