使用 javascript 计算得出的数字在交互式报告中显示不正确

Calculated numbers using javascript not displayed correctly in interactive report

我是 oracle apex 的新手,正在为自己研究一个案例,以更好地控制 oracle apex 5...:-)...希望如此。我有 2 页:1 个关于 table 的交互式报告和 1 个用于添加和修改的表单 记录。在表单中有 4 个字段:P12_VAT_PERC、P12_VAT_AMOUNT、P12_NET_AMOUNT 和 P12_TOT_AMOUNT(所有 4 个数据库字段,类型编号)。我已经在事件上创建了一个动态操作,失去了对上述 4 个字段项目之一的关注。该事件在 2 个动作为真时被触发。操作 1 是 P12_VAT_AMOUNT 上的设置值,设置类型 javascript 表达式:

($v('P12_VAT_PERC') / 100) * $v('P12_NET_AMOUNT');

操作 2 在 P12_TOT_AMOUNT 上设置值,设置类型 javascript 表达式:

parseFloat($v('P12_NET_AMOUNT'))+parseFloat(($v('P12_VAT_PERC') / 100) * $v('P12_NET_AMOUNT'));

以其有效的形式。 P12_VAT_AMOUNT 和 P12_TOT_AMOUNT 的值在失去对 4 个字段之一的关注后计算并正确显示为数字(如果适用,带有小数点)。但是当提交页面时,该值未在报告中正确显示,也未正确存储在数据库中。 IE。在提交之前 P12_VAT_AMOUNT 被计算并显​​示为 25.919999999999998。在报告中提交后显示为 25919999999999998。我缺少小数点。同样在数据库中,它存储为 2.592E16。

当我再次在表单中打开此记录进行编辑时,它最初在报告中显示为 25919999999999998。当更改即 P12_VAT_PERC 并更改焦点时,该字段被正确计算并再次显示正确位置上的小数点符号。提交后又出错了。为了解决这个问题,我发现在页面加载时也会触发动态操作(我启用了这个选项),这部分问题就解决了。通过 javascript,值在表单中正确显示,但错误的值似乎存储在数据库中,并且未在交互式报表中正确显示。

P12_TOT_AMOUNT 的相同行为。

我认为 APEX 使用点作为十进制字符,但浏览器 运行 所在机器的区域设置(荷兰语)设置为逗号。当我输入逗号作为小数点时,计算字段显示为 NaN。

我做错了什么?希望有人能帮助我并指导我在哪里找到解决方案。

真正的问题是 javascript 始终使用点作为小数点分隔符,而我的区域设置为小数点。我现在将集中讨论这个问题。与Apex无关。