代码之家  ›  专栏  ›  技术社区  ›  Julia Learner anothershrubery

朱莉娅:从零开始的大浮点数看起来很奇怪

  •  0
  • Julia Learner anothershrubery  · 技术社区  · 8 年前

    在julia1.0.0repl中,我得到以下行为。第一行是文档中的一个示例 https://docs.julialang.org/en/v1/base/math/#Base.Rounding.RoundFromZero

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

    我不清楚上面例子中5的意思。例如,

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

    似乎这两个四舍五入的数字应该在REPL中四舍五入到不同的输出。我错过了什么?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Bogumił Kamiński    8 年前

    5 位精度,在这两种情况下这是相同的值等于 1.0625 . 您可以使用例如:

    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"
    

    1.06 打印的是Julia舍入输出(在本例中,这是MPFR外部库的默认舍入)。

    推荐文章
    NSZ  ·  类型转换c++,quadmath
    9 年前