我有一个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”中获得正确的值。各位,请帮帮我。
答案 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。
可能您用于执行操作的变量类型不适合该应用程序。