今天細心的財務妹子對賬,發現代扣系統中的金額和系統應還的金額差1分錢,對,是1分錢,然後較真的財務妹子頓時不樂意了,逼著研發找原因。好吧,原因找到了,問題在於new double(amout*100).intvalue()這個方法。
amount=643.81元,那麼new double(amout*100)可不一定我們想象的是64381(單位分,代扣的金額一般是整數,但是單位是分),比如可能死64380.999999,這樣剛好碰到了.intvalue()這個粗暴階段的取整方法,就會變成64380分,也就是643.80元。
針對這種情況,比較保險的做法是做四捨五入的取整,例如new bigdecimal(value).setscale(0, bigdecimal.round_half_up).intvalue()
處於業務需要,我們的身份證進行校驗,不允許不滿18周歲的人辦理業務。前面報過來乙個問題,乙個sa錄單的時候提示不滿18歲,但是從身份證來看是應該都20歲了。別人錄單或者別人使用它的工號錄單都沒有這個問題。sa們自己發動了細心排查後,最終發現他的機器和別人不同,系統時間還是11年的,改了時間後好了。
汗顏,這個其實應該是開發的問題,開發是在前端用js校驗時間的,使用new date()取的當前時間和身份證的出生日期進行的比較,而js取的是客戶機的時間,所以就存在嚴重的安全漏洞;此處應該以服務端的時間進行判斷才對。
之前對前端了解不夠深入,算是長了見識。
最近面試遇到的幾個題目
一。c net方面 1.怎樣防止進入admin資料夾。2.簡述下request a request.from a request.querystring a 作用和區別?3.列舉ado.net中的五個主要物件,並簡單描述?4.為什麼我們要使用泛型呢?或者 list 和arraylist 有什麼區別?...
最近遇到的兩個BUG
最近遇到兩個bug 第一 我要用jdbc連線客戶的oracle資料庫客戶版本為11g 由於我的測試錯誤我覺得使用的class12這個包版本有點老,好像查不出oracle11g的資料 經證實是我錯了 所以我換了oracle11g的ojdbc6 g驅動包。sql select instance name...
最近碰到的幾個比較麻煩的bug
這幾個bug的最終解決方案都很簡單,也很少 但是找到問題根源的時間卻不少。乙個是指標在delete之後沒有設定成null 另乙個是manage c 中,沒有delete unmanaged resource。第乙個bug是關於乙個包含很多不同型別element指標的list。建立list內容時,如果...