代码之家  ›  专栏  ›  技术社区  ›  Eugene Yarmash

Perl模运算符问题

  •  6
  • Eugene Yarmash  · 技术社区  · 14 年前

    为什么第一个示例打印错误的结果?

    perl -le 'print $x = 100*1.15 % 5'
    4
    perl -le 'print $x = 1000*1.15 % 5'
    0
    
    2 回复  |  直到 14 年前
        1
  •  9
  •   NullUserException Mark Roddy    14 年前

    这是因为浮点运算。

    print $x = int(100*1.15);
    

    给你114。

        2
  •  5
  •   Tassos Bassoukos    14 年前

    四舍五入。请记住,计算机不能完美地表示实际的小数位——它们是近似的。在我的电脑上, perl -le 'print $x = (100*1.15)-115' 给出结果 -1.4210854715202e-14 100*1.15 差不多,但不完全是,115。