问题描述
我正在尝试计算影响员工工资的项目,但是算术运算的结果是不准确的返回99.99999999999999而不是100
例如,这仅在过程或功能内部的操作发生,否则正常工作。
保存的脚本中的详细信息。
谢谢。
例如,这仅在过程或功能内部的操作发生,否则正常工作。
保存的脚本中的详细信息。
谢谢。
专家解答
它在所有情况下的工作原理都是一样的,但是您需要记住,该过程的一部分是将您的价值返还给客户端。在PL/SQL示例中,“客户端” 是plsql本身。在SQL Plus示例中,您将该值带回已应用默认格式的SQL列。如果我们删除它,我们会看到更多细节:
事实上,我们没有得到100是共同的所有语言,程序,架构,因为我们有一个有限的精度来管理潜在的无限精度值。
https://en.wikipedia.org/wiki/Floating-point_arithmetic
SQL> select (100/30) *(30 ) x from dual;
X
----------
100
SQL> col x format 99.9999999999999999999999999999999999999
SQL> select (100/30) *(30 ) x from dual;
X
-----------------------------------------
99.9999999999999999999999999999999999999
事实上,我们没有得到100是共同的所有语言,程序,架构,因为我们有一个有限的精度来管理潜在的无限精度值。
https://en.wikipedia.org/wiki/Floating-point_arithmetic
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




