Julia 朱莉娅:从零开始的大浮动似乎很奇怪

Julia 朱莉娅:从零开始的大浮动似乎很奇怪,julia,arbitrary-precision,multiprecision,Julia,Arbitrary Precision,Multiprecision,在Julia 1.0.0 REPL中,我得到以下行为。第一行是文档中的一个示例 我不清楚上面例子中5的含义。比如说, julia> BigFloat("1.01", 5, RoundFromZero) 1.06 在REPL中,两个四舍五入的数字似乎应该四舍五入到不同的输出。我缺少什么?该值从零开始四舍五入,精度为5位,在这两种情况下,该值都等于1.0625。您可以使用以下方式进行检查: julia> Float64(BigFloat("1.01", 5, RoundFromZer

在Julia 1.0.0 REPL中,我得到以下行为。第一行是文档中的一个示例

我不清楚上面例子中5的含义。比如说,

julia> BigFloat("1.01", 5, RoundFromZero)
1.06

在REPL中,两个四舍五入的数字似乎应该四舍五入到不同的输出。我缺少什么?

该值从零开始四舍五入,精度为
5
位,在这两种情况下,该值都等于
1.0625
。您可以使用以下方式进行检查:

julia> Float64(BigFloat("1.01", 5, RoundFromZero))
1.0625

或者(这是黑客行为,不应该这样做):


现在打印
1.06
的原因是Julia对输出进行了舍入(在本例中,这是MPFR外部库的默认舍入)。

感谢您的精彩回答!
julia> Float64(BigFloat("1.01", 5, RoundFromZero))
1.0625
julia> big(0)+BigFloat("1.01", 5, RoundFromZero)
1.0625
julia> x = BigFloat("1.01", 5, RoundFromZero)
1.06

julia> x.prec = 10
10

julia> x
1.0625
julia> Base.MPFR._string(x, 10)
"1.0625"