数字相减的问题 |
答題得分者是:st33chen
|
luowy651
高階會員 ![]() ![]() ![]() ![]() 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
各位大大好:
比如说,我在一个dbgrid中显示如下资料: 应收金额 本次实收 剩余应收 99.99 如果本次实收>应收金额,就会报警message 现在,如果我在本次实收中填入99.99,那么剩余应收中就会显示0.00,这样就一切顺利,报警message也不会出现 但是,如果我的应收金额是99.989,由于我在dbgrid中显示保留二位小数,那么,还是会显示99.99,此时如果我在本次实收中因此也填入99.99,那么,就会造成本次实收>应收金额(99.99>99.989),如此,就会出现报警message 请问,我该如何用显示出来的99.99去减去本次实收,而不是用99.989去做? code: if adotable1.FieldByName('本次实收').Asfloat >adotable1.FieldByName('应收金额').Asfloat then EventStatus := esCancel; |
GrandRURU
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
把你的數據庫的該欄(应收金额)變更為小數後兩位,應可解決此問題。
===================引 用 luowy651 文 章=================== 各位大大好: 比如说,我在一个dbgrid中显示如下资料: 应收金额 本次实收 剩余应收 99.99 如果本次实收>应收金额,就会报警message 现在,如果我在本次实收中填入99.99,那么剩余应收中就会显示0.00,这样就一切顺利,报警message也不会出现 但是,如果我的应收金额是99.989,由于我在dbgrid中显示保留二位小数,那么,还是会显示99.99,此时如果我在本次实收中因此也填入99.99,那么,就会造成本次实收>应收金额(99.99>99.989),如此,就会出现报警message 请问,我该如何用显示出来的99.99去减去本次实收,而不是用99.989去做? code: if adotable1.FieldByName('本次实收').Asfloat >adotable1.FieldByName('应收金额').Asfloat then EventStatus := esCancel; |
luowy651
高階會員 ![]() ![]() ![]() ![]() 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
|
zhouying82
高階會員 ![]() ![]() ![]() ![]() 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
|
st33chen
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您好,
試一下 FORMATFLOAT 看看 : if formatfloat('#########.00', adotable1.FieldByName('本次实收').Asfloat) > formatfloat('#########.00', adotable1.FieldByName('应收金额').Asfloat) then EventStatus := esCancel; 只是, 這樣的想法很奇怪, 長久下來, 您資料庫的資料會保持正確嗎?
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
luowy651
高階會員 ![]() ![]() ![]() ![]() 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
非常感谢st33chen 大大,这正是我想要的,多次受您帮助,感恩不尽!
也同时感谢另二位大大的关注! 另再解释一下,这是一张收款单上的一部分内容,因为我是按销售单据来对应收款的,因此,只要这一笔单据收款完毕,下次就不会再出现,比如应收是99.99999,而实际收了100, 但mssql上类似29.399999,或者35.699999这样的数是很多的,我也想不出更好的方法了,好在这样的数相差并不会很大,因为小数位数多. 再次感谢! ===================引 用 st33chen 文 章=================== 您好, 試一下 FORMATFLOAT 看看 : if formatfloat('#########.00', adotable1.FieldByName('本次实收').Asfloat) > formatfloat('#########.00', adotable1.FieldByName('应收金额').Asfloat) then EventStatus := esCancel; 只是, 這樣的想法很奇怪, 長久下來, 您資料庫的資料會保持正確嗎? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |