上述第一步客户输入“金额字符串”后,柜员机要将“金额字符串”转换成整数型数据,并将该整数除以100计算商值,判断商值是否为整数,若不是整数,就不符合取款要求,柜员机要求客户重新输入,若是整数,柜员机程序就将商值保存在电脑中,作为下一步支付取款时,进行数钱操作的次数(因为这样设计的柜员机运行程序简洁而不重复),因此,柜员机支付取款的数额取决于客户输入的“金额字符串”。
四、许霆案的全部案件事实及发生原因
实际上,广州市商业银行提供了许霆的《账户流水清单》及涉案柜员机自身的《完整流水记录数据》和《涉案账户取款交易明细》,已经把全部案件事实都表达清楚了,问题是不容易正确理解。
客户的《账户流水清单》是由后台记录的,是后台运行取款、存款程序后形成的记录,内容是客户与银行之间进行交易的详细情况,与存折上打印的内容一致,体现了双方的共同意思。
柜员机《完整流水记录数据》是由自动柜员机记录的,内容是柜员机的工作情况明细,其中包括为客户提供查询及支付取款等内容。
许霆的《账户流水清单》中171次取款交易记录,与柜员机的《完整流水记录数据》中171次支付取款记录,是一一对应的关系。银行从许霆账户中扣除了一次取款数额,就需要向许霆支付取款一次。
当许霆第一次输入“1000”时,如果柜员机运行程序不存在瑕疵,请求取款数额1000报送到后台,后台办理取款交易前,就会用1000与许霆的账户余额176.97进行比较,请求取款数额大于账户余额数字,不符合取款交易条件,后台因余额不足停止运行取款程序,并向柜员机发出不同意支付指令,柜员机收到后台的指令,不会启动柜员机具有支付取款功能的机械传动部分,只在屏幕上显示:“余额不足,交易失败”。
许霆案中柜员机因程序升级,新版程序以国际通用的,带千分符的金额字符串表示方式,取代原来使用的表示方式,即“1,000”取代“1000”,因此,要求对柜员机运行程序中相关的指令都进行相应调整。可是,程序员遗漏了一条程序指令没有调整而存有瑕疵,这条指令的功能是将许霆输入的金额字符串转换成整数并向后台报送。没有调整的后果是,程序将金额字符串转换成整数时,遇到千分符而自动截断,将四位数字篡改成一位整数向后台报送,例如将“1,000”转换成整数1,将“2,000”转换成整数2。