2020-08-19 03:41发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好!
我以FLOAT类型运行SUM聚合的sql查询,返回结果等于13,199999999999998,而不是13,2。 我必须对浮点数执行哪些操作才能获得正确的结果。
谢谢。
亲爱的丹尼斯
请尝试使用贝尔
选择ROUND(SUM(Amount),2))作为"金额"
或
选择演员表(SUM(Amount)为DECIMAL(18,2))作为" Amount"
关于,
Venkat
请记住,浮点数据类型不能保证精确。 如果要获得精确的结果,最好使用精确的数据类型,例如DECIMAL()。
https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.04/zh-CN/4ee2f261e9c44003807d08ccc2e249ac.html
分数 这些数字中的1/2使用1/2、1/4、1/8、1/16等的组合表示。 因此,它们不能完全用小数位表示有理数。 例如,不能通过组合这些二进制分数来精确表示0.1。 在这种情况下,使用浮点数据类型时会得到不正确的结果。 对于这些数据类型,这是正确的行为。
您可以将每一行转换为数据模型或查询中的精确数据类型,也可以将结果转换为 一个精确的值。
马克·穆米,谢谢 很多。 对我有帮助。
最多设置5个标签!
亲爱的丹尼斯
请尝试使用贝尔
或
关于,
Venkat
请记住,浮点数据类型不能保证精确。 如果要获得精确的结果,最好使用精确的数据类型,例如DECIMAL()。
https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.04/zh-CN/4ee2f261e9c44003807d08ccc2e249ac.html
分数 这些数字中的1/2使用1/2、1/4、1/8、1/16等的组合表示。 因此,它们不能完全用小数位表示有理数。 例如,不能通过组合这些二进制分数来精确表示0.1。 在这种情况下,使用浮点数据类型时会得到不正确的结果。 对于这些数据类型,这是正确的行为。
您可以将每一行转换为数据模型或查询中的精确数据类型,也可以将结果转换为 一个精确的值。
马克·穆米,谢谢 很多。 对我有帮助。
一周热门 更多>