我有一些关于精度的问题,我不知道如何解决它。在我的Postgres数据库中,我的价格为DECIMAL(8,2)
。当我下拉一组价格时,我将它们相加,然后将它们与通过json POST给我的两个用户提交的价格0.55
和5.02
的总和进行比较。
问题在于,在我的计算中,我应该比较说5.57到5.57,而是我比较if(POST_CALC === SERVER_CALC)
或if(2.011.011.001.000.55 === 5.569999999999999)
,这显然是失败的。
似乎我的Postgres数据会以字符串形式返回,可能会处理DECIMAL(8,2)
的小数设置...但是如果我将Node.js服务器上的查询值更改为{{ 1}}然后我最终将Number(value_here)
与5.569999999999999
进行比较,这是伟大的,并且它有效,但我担心在另一种情况下,我可能不会那么幸运,事情将会发挥作用。< / p>
在您比较Postgres和用户输入的数值的场景中,正确比较计算值的最佳策略是什么?我觉得这可能会将我的价值保持为5.569999999999999
?