数学公式在MySQL存储过程中返回不正确的值

时间:2013-12-21 05:49:36

标签: php mysql stored-procedures formula mathematical-optimization

我有一个MySQL存储过程,我有这个公式 -

chamt = CEIL((金额 - (金额*((百分比/ 100)*保证金)/ 100))* 100)/ 100;

(我已乘以公式并将公式除以100,以便始终得到两位小数)


案例1 - 替换值 -

chamt = CEIL((103.00 - (103.00 *((100.00 / 100)* 2.70)/ 100))* 100)/ 100;

在这里,我得到的是100.22,这绝对是正确的。


案例2 - 取代价值观 -

chamt = CEIL((200.00 - (200.00 *((100.00 / 100)* 2.25)/ 100))* 100)/ 100;

在这里,我得到的是195.51,而应该是195.50


我正试图摆脱这种情况但无法在“情况2”中获得正确的值。各位,请帮帮我。

1 个答案:

答案 0 :(得分:0)

请记住,当您使用实际类型数字时,它使用小数。

你知道1/3 = 0.3333333333 ......

和(1/3)* 3 = 1(为你);但请记住,PC不适用于1/3,他们使用的是0.3333333, 因此,当您进行乘法(1/3)* 3时,PC正在执行此操作:(0.333333333)* 3,这样可以得到0.9999999。

0.9999!= 1。

可能您用于执行操作的变量类型不适合该应用程序。