2010-11-17 5 views
0

Есть ли способ предотвратить число, такое как 10000000, автоматически преобразуется в поплавок?ERLANG - Размер поплавка по умолчанию

+1

Что вы подразумеваете под autoconverted to float? Все целые числа, с которыми я когда-либо работал, всегда оставались целыми, независимо от того, насколько они велики. – Lukas

+3

Можете ли вы показать контекст, в котором вы думаете, что это происходит? – RichardC

ответ

4

Нет целые числа не получают autoconverted плавать:

Просто набрав в Erlang оболочки:

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

Отдел с/будет автоконвертировать, а div приведет к целым числам. – Koistinen

7

Есть два контекста, в котором что-то вроде Автопересчет происходит:

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

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

Но в любом случае размер цифр не имеет значения.

Смежные вопросы