sql - oracle SQL中的特殊算术
问题描述
例如 - 列 ABC 编号 (12,4)。
我的值为 2.7487,如果除以 2,则为 1.3744(四舍五入)。
1.3744 + 1.3744 = 2.7488
我如何获得结果 - 2.7487 作为原始结果。
解决方案
你不能。这是有限算术(整数和浮点)的正常行为。
即使您添加大量小数位,您仍然会丢失精度。
这是发票四舍五入的典型案例。例如,您有一张总金额为 100.00 美元的发票,您需要将其分成 3 个项目。你每人得到三件物品$100.00 / 3.0
。那是:
- 33.33 美元项目 #1。
- 33.33 美元项目 #2。
- 33.33 美元项目 #3。
- 总共... 99.99 美元!(不是您预期的 100.00 美元)。
现在已知的年龄解决方案是调整一个或多个值以增加或减少一美分。在这种情况下,您可以在最后一项上加 1 美分,以获得:
- 33.33 美元项目 #1。
- 33.33 美元项目 #2。
- 33.34 美元项目 #3。
- 总共... 100.00 美元!完美的。
有多种可能的组合(全部有效)来调整这些值。这就是会计中的做法。
推荐阅读
- react-native - React Navigation and React Native Gesture Handler -- Invariant Violation: No callback
- javascript - 如何从 CDN 异步加载多个文件(但同步执行)?
- java - 如何在当前上下文中设置跨度上下文?
- sql - 月底休息时间
- c# - JsonConvert Deserializer 不转换嵌套的 json 对象
- javascript - 模拟多个相机源
- php - 如何在使用 PDO 执行之前识别准备好的语句列名
- swiftui - 如何在 SwiftUI 列表中禁用更新
- python - 组合两个整数列而不加法
- c++ - 从终端终止 while(cin>>ch) 并继续程序执行