我正在关注" Julia语言文档发布0.5.0-dev"并运行他们的一些演示命令,这一个抛出错误。 (参考第28页)
setrounding(BigFloat, RoundDown) do
BigFloat(1) + parse(BigFloat, "0.1")
end
抛出错误:
错误:UndefVarError:setrounding not defined
但似乎setrounding不应该是一个变量,而是一个函数。
答案 0 :(得分:4)
如果您正在使用v0.4,则需要查看0.4文档,而不是您看到的0.5个文档。在页面的右下角,您会看到一个带有绿色箭头的小黑框。单击它,然后选择所需文档的版本。
在这种特殊情况下,此函数的名称在0.4(最新版本)和0.5(当前开发版)之间发生了变化。
答案 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()