假设您想要对价格为60欧元的产品给予5欧元的折扣。
这等于折扣0.08333 ...或8.333 ...%
向后计算时,我会计算:
问:在任何基本价格的任何折扣额下,获得准确数字(对于单一交易)需要多少个逗号后面的位置?
或者实际上,当在MySQL表中存储折扣时,我的十进制(x,y)类型参数应该是什么?
答案 0 :(得分:0)
您需要累积误差小于1/2或0.005。中间结果的相对准确性需要反映出来。如果计算中包含的价格都低于10^k = 10^(k+2)
分,则需要所有中间数字的相对准确度为0.5*10^(-k-2)
或至少k+3
个有效数字。
请注意,误差在计算的每个步骤中累加,按照第一顺序相加,因此当计算有多个步骤时,需要相应地调整计算的相对精度。 log10(s)
步s
的有效位数。
在您的示例中,k=2
的{{1}}步骤包含舍入结果,因此中间结果应至少具有2
个有效数字,以确保获得正确的结果。