Ruby浮点数有很多小数,为什么?
为什么以下操作会导致我获得此值:Ruby浮点数有很多小数,为什么?,ruby,floating-point,Ruby,Floating Point,为什么以下操作会导致我获得此值: 14.99 + 1.5 = 16.490000000000002 我希望是16.49。我怎样才能避免那些额外的小数呢?这就是工作原理。如果您想要一个仍然是Float对象的整数,您可以这样做 result.round(2) #=> 16.49 或者,如果您只需要一个字符串: "%0.2f" % result 这不是因为Ruby,而是因为计算机中浮点数的表示方式(根据标准) 简言之,有些浮点数无法在计算机中精确表示。如果你需要更好的精度,你可以试试这个类
14.99 + 1.5 = 16.490000000000002
我希望是16.49。我怎样才能避免那些额外的小数呢?这就是工作原理。如果您想要一个仍然是Float
对象的整数,您可以这样做
result.round(2) #=> 16.49
或者,如果您只需要一个字符串:
"%0.2f" % result
这不是因为Ruby,而是因为计算机中浮点数的表示方式(根据标准) 简言之,有些浮点数无法在计算机中精确表示。如果你需要更好的精度,你可以试试这个类