1、文件壓縮後,我和測試同事的電腦解壓不了,報下面圖的錯,其他同事的電腦下載和解壓又是好的
原因:文件名中文亂碼問題
並不是我解決的,是公司大佬解決的,因爲調用的是公司裏的一個壓縮工具,具體方法就是對ZipOutputStream加上
setEncoding("GBK");
2、IE模式下,textarea被disabled後,框的大小不會隨着文本內容自動展開,其他瀏覽器可以
原因:破IE害人不淺。。。
我就加了個判斷,如果是IE,就對裏面的內容的行數進行判斷,然後將行數乘以2,再用jquery的attr賦rows值給textarea
var str= $("#str").html().split(/\r?\n/).length;
$("#str").attr("rows",(str* 2 < 4 ? 4 : (str* 2)));
3、組織機構代碼允許輸入帶上橫槓的內容
說是不需要專門判斷這個組織機構代碼是否合規,但至少保證:數字字母、以及橫槓可加可不加。
於是我先給文本框設了個maxlength是10
然後在判斷的js處,判斷帶橫槓就10位,不帶就9位,都是數字或者字母:
var valueNo_ = value.replace("-","");
var reg = /([a-zA-Z0-9]{8})([a-zA-Z0-9])|([-][a-zA-Z0-9])$/;
if(reg.test(value) && valueNo_.length<=9){
return true;
}
4、Double的數據精準度問題
全部改成了BigDecimal進行計算然後doubleValue()一下
BigDecimal的使用:
Double xxx = (略);
//最精確的將double轉bigDecimal(先把double值轉成string)
BigDecimal a = new BigDecimal(Double.toString(xxx));
BigDecimal b = new BigDecimal("1.11");
//BigDecimal值之間的加減乘除
BigDecimal c = a.add(b);
c = a.subtract(b);
c = a.multiply(b);
c = a.divide(b);
//對非bigDecimal值的乘除:
c = a.multiply(new BigDecimal("0.7")).setScale(2,BigDecimal.ROUND_HALF_EVEN);
c= a.divide(new BigDecimal("0.7"),2, BigDecimal.ROUND_HALF_EVEN);
轉載:BigDecimal.ROUND_HALF_XXX的各種用法(作者:yingchen)
ROUND_HALF_EVEN 銀行家舍入法
向“最接近的”數字舍入,如果與兩個相鄰數字的距離相等,則向相鄰的偶數舍入。
如果捨棄部分左邊的數字爲奇數,則舍入行爲與 ROUND_HALF_UP 相同;
如果爲偶數,則舍入行爲與 ROUND_HALF_DOWN 相同。
注意,在重複進行一系列計算時,此舍入模式可以將累加錯誤減到最小。
此舍入模式也稱爲“銀行家舍入法”,主要在美國使用。四捨六入,五分兩種情況。
如果前一位爲奇數,則入位,否則捨去。
以下例子爲保留小數點1位,那麼這種舍入方式下的結果。
1.15>1.2 1.25>1.2