gpt4 book ai didi

floating-point - 为什么 Erlang 的 float 中不允许出现 'Infinity'?

转载 作者:行者123 更新时间:2023-12-04 07:34:26 25 4
gpt4 key购买 nike

Erlang(以及 Elixir 的扩展)支持浮点数。

一些可能的 float :

  • 1.2345
  • 1.0e10
  • 1.0e-42

  • Erlang 支持 NaN(Erlang 中的 nan.)(但是我还没有发现输出 nan 本身的方法)。

    但是,Erlang 不支持 Infinity .虽然像 IEEE-754 这样的通用标准规定应该返回 Infinity在做 1.0/0.0 之类的事情时,相反,Erlang 抛出 bad arithmetic error .

    尝试制作像 1.0e400 这样“太大”的浮点数时也会发生同样的情况。 .

    这背后可能有一些(历史?)原因。

    最佳答案

    查看 ./erts/emulator/sys/unix/sys_float.c

    在我看来,Erlang 正在使用底层的 strtod 实现来转换为“标准”C 浮点数。

    在大多数 unix 系统上,浮点并没有按照该标准实现
    在创建 Erlang 时,但会生成 Infinity 的值会生成 fpe 信号错误。

    关于floating-point - 为什么 Erlang 的 float 中不允许出现 'Infinity'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38080582/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com