R15b на Windows, дает:Erlang поплавки и TRUNC
>trunc(1.9999999999999999999).
2
Для этого вопроса, просто набрав поплавок возвращается:
> 1.9999999999999999999.
2.0
AFAIK, функция усечения должна просто отбросить дробную часть (по крайней мере, во всяком случае, это то, что мне нужно). Функция пола также может сделать трюк AFAIK, но реализации на полу, которые я видел, выкладывали онлайн-использование ... вы догадались ... trunc.
Я не занимаюсь этим, мне действительно нужно, чтобы это было правильно для программы, которую я разрабатываю.
Любые идеи по этому вопросу?
Спасибо.
Если вам нужны цифры, чтобы быть «правильными», не следует использовать с плавающей точкой. – geoffspear
Не полезно: 1) Это даже не пытается ответить на мой вопрос. 2) На самом деле, моя потребность в truncate - попытка уйти от поплавков и работать с прямыми целыми числами. –
Вот почему я не опубликовал его в качестве ответа. Ваша проблема в том, что реализация с плавающей запятой, совместимая с IEEE, не может представлять число 1.9999999999999999999 в двоичном формате как что-либо, кроме 2.0. – geoffspear