有没有办法阻止将10000000这样的数字自动转换为浮点数?
答案 0 :(得分:7)
有两种情况会发生类似自动转换的事情:
比较数字是否相等(您可以使用=:=
来阻止自动转换):
1> 1 == 1.0.
true
2> 1 =:= 1.0.
false
此外,/
与C和类似语言的工作方式不同,并且总是返回一个浮点数(使用div
进行整数除法)。
但在这两种情况下,数字的大小都很重要。
答案 1 :(得分:4)
没有整数自动转换为浮点数:
只需输入erlang shell:
1> 10000000.
10000000
2> 1000000000000000000000000000000000.
1000000000000000000000000000000000
3> 1000000000000000000000000000000000 + 1.
1000000000000000000000000000000001