"請問一分錢哪裏去了?" 已經離開前一家公司有兩年多了,一位老客戶今天竟打電話前來詢問財務報表相差1分錢的事情,他說試算表及資産負債表都因相差1分錢而不平衡,也就無法交報表@_@
在會計資訊管理系統中,每日會有會計錄入傳票,到月底或下月初結帳時傳票在經過審核後需要過帳,即將每一個科目的餘額每月留底起來,特別是資産,負債,所有者權益類科目,每月的留底餘額會一直累加下來,而試算表與資産負債表都要讀取留底的餘額.如果說不平衡可能原因會是傳票借貸不平衡或者程式代碼中孌數形態不當或資料庫中資料表欄位形態設定不當及數值小數位數的四舍五入.
在此要特別提醒欄位在設計成數值時要千萬小心慎用float喔
用MYSQL的一個表tableA中的兩個字段分別設為decimal(18,4)和float(18,4),當在對這兩個欄位輸入數值
123456.0000 123456.0000正常
1234568.0000 1.234567e+006不正常
即當float形態的整數值超過6位時資料庫中看到的值就會用科學計數法,而當超過6位且末尾是8或9時值就變異了
而且程式中變數的設定也需要和資料庫中的保持一致
1分錢到底哪裏去了?好像是留底餘額的欄位為float形態,儘管可能程式中會用decimal的變數,小數位數有四舍五入