Oracle浮点计算

Oracle浮点计算,oracle,precision,Oracle,Precision,我正在执行以下Oracle选择: 从双通道选择1/48*24*60 结果:29.9999999999999999999999999999999995 从Dual中选择1/48*60*24 结果:30 从Dual中选择1/48*(60*24) 结果:29.9999999999999999999999999999999995 这里有趣的是,如果我乘以1/48*24,返回的结果是0.499999999。。。而不是0.5。这导致了29.999的结果 为什么会返回此结果?我应该怎么做才能避免这种计算结果与

我正在执行以下Oracle选择:

  • 从双通道选择1/48*24*60
  • 结果:29.9999999999999999999999999999999995

  • 从Dual中选择1/48*60*24
  • 结果:30

  • 从Dual中选择1/48*(60*24)
  • 结果:29.9999999999999999999999999999999995

    这里有趣的是,如果我乘以
    1/48*24
    ,返回的结果是0.499999999。。。而不是0.5。这导致了29.999的结果

    为什么会返回此结果?我应该怎么做才能避免这种计算结果与预期的不一样?

    (1/a)*b*c=(b*c)/a,这不太可能违反浮点限制,但如果你是说30,那么就写30,并在评论中说明它的来源。