js中的數據轉換、整數、小數保存、四舍五入


 首先,示例jsp中的整數錄入、保存
     <input class="form-control" id="unit" name="unit" placeholder="份數"
        type="text"
        onkeypress="if(!this.value.match(/^[\+\-]?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+)?$/))this.o_value=this.value"
        onkeyup="if(!this.value.match(/^[\+\-]?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+)?$/))this.o_value=this.value"
        onblur="if(isNaN(value))this.value='';else this.value=value.replace(/\b(0+)/gi,'')"/>
 
其次,示例:jsp中保存四位小數(做到四舍五入)
<input class="form-control" id="firstPrem" name="firstPrem" placeholder="首期總保費"      data-rule-required='true' type="text"  value="${tblOrder.firstPrem }"    
  onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"   
   onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value"
//////方案一:如果不考慮數據長度,還可以用(整數超過11位就不行了,此時小數只有第一位有值)
  onblur="if(isNaN(value))this.value='';else if(this.value!=''){if((Math.floor((parseFloat(value).toFixed(4))*10000)-(Math.floor(value*10000))==0) && (Math.round((value*100000)%10)==5)) value=Math.floor(value*10000+1)/10000; else value=parseFloat(value).toFixed(4);}
//////方案二:無視有限數據長度,轉為字符串進行分類歸納
onblur="if(isNaN(value))this.value='';
      else if(this.value!=''){
       if(this.value.indexOf('.')==-1)value=value+'.00000';
       var str_before = value.split('.')[0];
       if(str_before=='')str_before=0;
       str_before = Math.round(str_before);
       var str_after = value.split('.')[1]+'00000';
       if(str_after=='')str_after='00000';
       str2 = str_after.charAt(4);
       if(str2>4 && str_after.slice(0,4)<9999)
       this.value=(str_before+'.'+(Math.round(str_after.slice(0,4))+1));
       if(str2>4 && str_after.slice(0,4)==9999)
       this.value=((Math.round(str_before)+1)+'.0000');
       if(str2<5)
       this.value=(str_before+'.'+str_after.slice(0,4));
       if(this.value.split('.')[0].length>11){
       layer.msg('長度超過數據存儲上限!');
       this.value='';
       }
      } "
 
onblur="if(isNaN(value))this.value='';       else if(this.value!='' &&  value.split('.')[0].length>11){        layer.msg('長度超過數據存儲上限!');        this.value='';       }       else if(this.value!=''){        var str_before = value.split('.')[0];        if(str_before=='')str_before=0;        var str_after = value.split('.')[1]+'00000';        if(str_after=='')str_after='00000';        str2 = str_after.charAt(4);        if(str2>4 && str_after.slice(0,4)<9999)        this.value=(str_before+'.'+(Math.round(str_after.slice(0,4))+1));        if(str2>4 && str_after.slice(0,4)==9999)        this.value=((Math.round(str_before)+1)+'.0000');        if(str2<5)        this.value=(str_before+'.'+str_after.slice(0,4));       } "      />

1)數據進來,首先確保是數字,如果因為輸入法等原因進來的不是數字,則需要通過 onblur進行校驗,如果不是數字,清空 2)toFixed是個好方法,可以進行數據的小數位數控制,但並不是單純的截取(toFixed之后的數據減去一個同長度的值就可以看的出來) 3)toFixed對於尾數是5的處理無法精准處理,需要特殊加工,進行場景分類歸納處理
js
中的數據類型及其轉換

Js中的數據類型

Js中的數據類型一共有六種,即number,string,boolean,underfine,null,object

一,number

Number數據類型指的是數字,可以為整型,也可以是浮點數。如

var a=12,b=12.5;

 

 

二,string

字符串由零個或多個字符構成,字符包括字母,數字,標點符號和空格;需要注意的是

字符串必須放在引號里(單引號或雙引號);

 
 

var bob=”man”;

 

alert(“bob”);

 

alert(bob);

瀏覽器首先會彈出包含有bob”的字符串,然后彈出包含有“man”的字符串,前者是直接彈出字符串,后者則是彈出變量的值。

三,boolean

布爾型數據只能有兩種值 true false,在jstruefalse是關鍵字。通常,我們設置布爾值時多用於條件的判斷。如:

 
 

var flag=true;

 

if(flag){

 

//js 代碼

 

}

在條件判斷語句中我們將所有的判斷條件看做一個布爾值(這里需要了解一些布爾值的轉換特性)。

四,underfine

underfine通常指的是沒有賦值的變量,通過typeof可以對數據的類型進行判斷。如

 
 

var a,b=underfine;

 

alert(a);

 

alert(typeof a);

兩次結果都為underfine

五,null

null是一個只有一個值的特殊類型。表示一個空對象引用。如:

var a=null;

a清空。

六,object

對象就是由一些彼此相關的屬性和方法集合在一起而構成的一個數據實體。常見的對象有arraywindowdocument等。

例:

 
 

var today = new Date();

 

var year = today.getFullYear();

 

var month = today.getMonth() + 1;

 

var day = today.getDay();

 通過創建對象實例就可以調用對象的方法了,如上就是創建了一個Date的對象實例todaytoday通過調用Date的方法得出了現在的年月日等信息。

數組array是作為經常使用的對象,是由多個 (-) 所組成的一個多容器。其索引 默認是從0開始的。創建數組有兩種方法:1創建數組對象實例 var arr=newArray1,2,3);2直接使用面向字面量 var a=[1,2,3];

 
 

<script  type="text/javascript">

 

        var date=new Date();

 

        var day=date.getDay();

 

        var weekly=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]

 

        document.write("today  is "+weekly[day]+"<br>");

 

</script>

結果將輸出今天是禮拜幾。

數據類型的查看與轉換

js中我們經常需要知道某些變量的數據類型,並將其轉換為我們所需要的數據類型。

通常,我們判斷變量的數據類型會用到標識符typeof,如:

 
 

var mood = "happy";

 

alert(typeof  mood);

 

alert(typeof  95)

 

通過標識符,我們可以很快獲取數據的類型;

數據的轉換中,我們經常用到的是將變量轉換成字符串或數字。

轉換成字符串要使用toString(),例

 
 

var married = false;

 

alert(married.toString());

  

 

轉換成數字時,有兩種方法,parseInt() 轉換成整數,parseFloat()轉換成浮點數。

例:

   
 

 

var test = parseInt(“blue”); //returns NaN

 

var test = parseInt(“1234blue”); //returns  1234

 

var test = parseInt(“22.5”); //returns 22

 

var test = parseFloat(“1234blue”); //returns  1234

 

var test = parseFloat(“22.5”); //returns 22.5

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM