Julia:LoadError:UndefVarError:没有定义setrounding

时间:2016-03-02 20:06:04

标签: julia

我正在关注" Julia语言文档发布0.5.0-dev"并运行他们的一些演示命令,这一个抛出错误。 (参考第28页)

setrounding(BigFloat, RoundDown) do
BigFloat(1) + parse(BigFloat, "0.1")
end

抛出错误:

  

错误:UndefVarError:setrounding not defined

但似乎setrounding不应该是一个变量,而是一个函数。

2 个答案:

答案 0 :(得分:4)

如果您正在使用v0.4,则需要查看0.4文档,而不是您看到的0.5个文档。在页面的右下角,您会看到一个带有绿色箭头的小黑框。单击它,然后选择所需文档的版本。

在这种特殊情况下,此函数的名称在0.4(最新版本)和0.5(当前开发版)之间发生了变化。

version selector

答案 1 :(得分:2)

在Julia 0.4中,有两个不同的函数,set_rounding可以直接更改舍入模式,with_rounding可以在您编写的示例中使用,它会在此期间暂时更改舍入模式给定函数(在您的情况下,do...end块中的代码)。

在Julia 0.5中,这些被合并到单个setrounding函数中,该函数执行这两个任务,并且与Base中函数的趋势一致,不再具有下划线({ {1}})。

有关此重命名的讨论可在原始的Pull请求中找到:https://github.com/JuliaLang/julia/pull/13232

即使在0​​.4中,您也可以使用新的0.5语法 先_;这是Julia向后兼容模块,在这种情况下,它将使用正确的行为定义using Compat函数。 (您需要setrounding至少0.7.11的版本;如果您有以前的版本,只需执行Compat。)

e.g。

Pkg.update()