mysql IF-Statement问题:传递更改的值

时间:2019-03-01 21:22:39

标签: mysql

if (preise.kond_basis_preis > 0,preise.kond_basis_preis, a.bruttopreis) as bruttopreis,
preise.kond_basis_preis,
a.bruttopreis as brutto

以值形式提供:

4.659999847412109   
4.66    
4.66

这是什么原因造成的?

服务器版本:5.7.22-0ubuntu0.16.04.1-log

1 个答案:

答案 0 :(得分:1)

浮点运算导致这种情况。您的第一行包含一个隐式计算。

尝试

ROUND(if (preise.kond_basis_preis > 0,preise.kond_basis_preis, a.bruttopreis),2) as bruttopreis,

,您将如预期的那样在.的右边获得twp小数位。

阅读。 Is floating point math broken?