ERLANG - размер по умолчанию - PullRequest
       2

ERLANG - размер по умолчанию

0 голосов
/ 17 ноября 2010

Есть ли способ предотвратить автоматическое преобразование числа, такого как 10000000, в число с плавающей точкой?

Ответы [ 2 ]

7 голосов
/ 18 ноября 2010

Существует два контекста, в которых происходит что-то вроде автоконверсии:

  1. При сравнении чисел на равенство (вы можете использовать =:= для предотвращения автоконверсии):

    1> 1 == 1.0.
    true
    2> 1 =:= 1.0.
    false
    
  2. Кроме того, / работает иначе, чем C и подобные языки, и всегда будет возвращать число с плавающей запятой (используйте div для целочисленного деления).

Но ни в том, ни в другом случае размер чисел не имеет значения.

4 голосов
/ 17 ноября 2010

Нет целых чисел, которые автоматически конвертируются в число с плавающей точкой:

Просто введите в оболочку erlang:

1> 10000000.
10000000
2> 1000000000000000000000000000000000.
1000000000000000000000000000000000
3> 1000000000000000000000000000000000 + 1.
1000000000000000000000000000000001
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...