js 보류 두 소수 방법 총화

본 고 는 js 보존 두 소수 라 는 사람들 이 자주 겪 는 고전적 인 문제 에 대해 각종 상황 에서 의 함수 문법 과 문제 에 대한 분석 을 정리 한 것 이다.다음은 모든 내용 이다.
计算机电子书
1.우 리 는 먼저 전형 적 인'반올림'알고리즘 부터 말한다.
1.반올림 의 경우

var num =2.446242342;
num = num.toFixed(2); //       2.45
2.반올림 하지 않 는 다
첫 번 째,먼저 소수 변 의 정수:

Math.floor(15.7784514000 * 100) / 100 //       15.77
두 번 째,문자열 로 정규 일치 사용:

Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) //       15.77,        10     10.0000
주의:만약 음수 라면 먼저 양수 로 바 꾸 어 계산 하고 마지막 에 음수 로 돌아 가세 요.
반올림 문 제 를 해결 한 후에 js 는 두 개의 소 수 를 유지 하 는 방법 을 공유 합 니 다.

//      2   (       0,       )
function keepTwoDecimal(num) {
 var result = parseFloat(num);
 if (isNaN(result)) {
 alert('      ,   !');
 return false;
 }
 result = Math.round(num * 100) / 100;
 return result;
}
//      2   (    ,  0  )
function keepTwoDecimalFull(num) {
 var result = parseFloat(num);
 if (isNaN(result)) {
 alert('      ,   !');
 return false;
 }
 result = Math.round(num * 100) / 100;
 var s_x = result.toString();
 var pos_decimal = s_x.indexOf('.');
 if (pos_decimal < 0) {
 pos_decimal = s_x.length;
 s_x += '.';
 }
 while (s_x.length <= pos_decimal + 2) {
 s_x += '0';
 }
 return s_x;
}
만약 여러분 이 자 바스 크 립 트 에 대해 체계 적 이 고 깊이 있 게 공부 하고 싶다 면 JavaScript 계시 록 PDF 원서 완 판 이라는 고전 서적 을 참고 할 수 있 습 니 다
2.Js 플 로 트 형 소수점 후 두 자릿수 를 취 하 는 방법

<script type="text/javascript"> 
 //       
 //  :        ,     2  
 function toDecimal(x) { 
 var f = parseFloat(x); 
 if (isNaN(f)) { 
 return; 
 } 
 f = Math.round(x*100)/100; 
 return f; 
 } 
 
 //   2   , :2,  2    00. 2.00 
 function toDecimal2(x) { 
 var f = parseFloat(x); 
 if (isNaN(f)) { 
 return false; 
 } 
 var f = Math.round(x*100)/100; 
 var s = f.toString(); 
 var rs = s.indexOf('.'); 
 if (rs < 0) { 
 rs = s.length; 
 s += '.'; 
 } 
 while (s.length <= rs + 2) { 
 s += '0'; 
 } 
 return s; 
 } 
 
 function fomatFloat(src,pos){ 
 return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos); 
 } 
 //     
 alert("  2   :" + toDecimal(3.14159267)); 
 alert("    2   :" + toDecimal2(3.14159267)); 
 alert("  2   :" + toDecimal(3.14559267)); 
 alert("    2   :" + toDecimal2(3.15159267)); 
 alert("  2   :" + fomatFloat(3.14559267, 2)); 
 alert("  1   :" + fomatFloat(3.15159267, 1)); 
 
 //     
 alert("  2   :" + 1000.003.toFixed(2)); 
 alert("  1   :" + 1000.08.toFixed(1)); 
 alert("  1   :" + 1000.04.toFixed(1)); 
 alert("  1   :" + 1000.05.toFixed(1)); 

 //     
 alert(3.1415.toExponential(2)); 
 alert(3.1455.toExponential(2)); 
 alert(3.1445.toExponential(2)); 
 alert(3.1465.toExponential(2)); 
 alert(3.1665.toExponential(1)); 
 //   n ,  n  
 alert("       2 " + 3.1415.toPrecision(2)); 
 alert("       3 " + 3.1465.toPrecision(3)); 
 alert("       2 " + 3.1415.toPrecision(2)); 
 alert("       2 " + 3.1455.toPrecision(2)); 
 alert("       5 " + 3.141592679287.toPrecision(5)); 
 </script>
Javascript 으로 float 형 소수점 후 두 자 리 를 취하 고 예 22.127456 을 22.13 으로 취하 면 어떻게 합 니까?
1.소수 부분 을 버 리 고 정수 부분 을 유지한다.

parseInt(5/2)
2.위로 올 리 고 정수 가 있 으 면 정수 부분 에 1 을 더 합 니 다.

Math.ceil(5/2)
3.반올림.

Math.round(5/2)
4,아래로 정렬

Math.floor(5/2)
별 종의 방법
1.가장 멍청 한 방법

function get()
{
 var s = 22.127456 + "";
 var str = s.substring(0,s.indexOf(".") + 3);
 alert(str);
}
2.정규 표현 식 효과 가 좋다

<script type="text/javascript">
onload = function(){
 var a = "23.456322";
 var aNew;
 var re = /([0-9]+.[0-9]{2})[0-9]*/;
 aNew = a.replace(re,"$1");
 alert(aNew);
}
</script>
3.그 는 비교적 똑똑 하 다.

<script>
var num=22.127456;
alert( Math.round(num*100)/100);
</script>
4.새로운 것 을 쓰 는 친구.............................................................
5.js 2 비트 소수 유지(강제)
소수점 자리 수가 2 자리 이상 인 경우 위의 함수 로 문제 가 없 지만 2 자리 이하 인 경우,예 를 들 어 changeTwo Decimal(3.1)은 3.1 로 돌아 갑 니 다.만약 에 3.10 과 같은 형식 이 필요 하 다 면 아래 의 함수 가 필요 합 니 다.

function changeTwoDecimal_f(x) {
 var f_x = parseFloat(x);
 if (isNaN(f_x)) {
 alert('function:changeTwoDecimal->parameter error');
 return false;
 }
 var f_x = Math.round(x * 100) / 100;
 var s_x = f_x.toString();
 var pos_decimal = s_x.indexOf('.');
 if (pos_decimal < 0) {
 pos_decimal = s_x.length;
 s_x += '.';
 }
 while (s_x.length <= pos_decimal + 2) {
 s_x += '0';
 }
 return s_x;
}
3.js 는 두 개의 소 수 를 보류 하고 자동 으로 0 을 보충 합 니 다.

function returnFloat(value){
 var value=Math.round(parseFloat(value)*100)/100;
 var xsd=value.toString().split(".");
 if(xsd.length==1){
 value=value.toString()+".00";
 return value;
 }
 if(xsd.length>1){
 if(xsd[1].length<2){
 value=value.toString()+"0";
 }
 return value;
 }
}
4.JS 는 정 수 를 취하 고 js 는 절대 치 를 취하 고 js 는 반올림(두 개의 소 수 를 유지 할 수 있 음)
JS 는 정 수 를 취하 고 js 는 절대 치 를 취하 고 js 는 반올림(두 개의 소수 유지 가능)함 수 는 다음 과 같다.

<SCRIPT language=javascript>
<!-- 
function jsMath()
{
 document.write(Math.floor(5.80) + "<br>");//      
 document.write(Math.round(5.80) + "<br>");//    ,   
 document.write(Math.round((5.80*100)/100) + "<br>");//    ,      
 document.write(Math.ceil(5.10) + "<br>");//   
 document.write(Math.abs(-5.80) + "<br>");//    
 document.write(Math.max(55,58) + "<br>");//         
 document.write(Math.min(55,58) + "<br>");//         
}
-->
</SCRIPT>
<div>
<script>jsMath();</script>
</div>
총결산
JS 데이터 포맷 은 웹 전단 개발 을 진행 할 때 자주 발생 하 는 일 입 니 다.특히 데이터 형식 이 Float 인 데 이 터 는 두 개의 소수,소수점 뒤의 데 이 터 를 반올림 해 야 하 는 지 등 특수 처리 가 필요 합 니 다.데이터 포맷 을 실현 하여 두 개의 소 수 를 보존 하 는 여러 가지 방법 을 소개 한다.
1.JS 가 자체 적 으로 가지 고 있 는 방법 toFixed(),toFixed()방법 은 Number 를 지 정 된 소수 자릿수 의 숫자 로 반올림 할 수 있다.
문법:NumberObject.toFixed(num),mun 은 필수 적 인 매개 변수 입 니 다.즉,소수 의 자릿수 를 규정 하고 0~20 사이 의 값 입 니 다.0 과 20 을 포함 하여 더 큰 수치 범 위 를 지원 할 수 있 습 니 다.이 매개 변 수 를 생략 하면 0 으로 대체 하기 때문에 toFixed()방법 은 2 비트,3 비트,4 비트 등 을 유지 할 수 있 고 num 의 수치 에 달 려 있 습 니 다.
반환 값:NumberObject 를 되 돌려 주 는 문자열 은 지수 계산법 을 사용 하지 않 고 소수점 뒤에 고정된 num 비트 숫자 가 있 음 을 표시 합 니 다.필요 하 다 면,이 숫자 는 반올림 되 고,지 정 된 길이 에 도달 할 수 있 도록 0 으로 보충 할 수도 있다.num 이 le+21 보다 크 면 이 방법 은 NumberObject.toString()만 호출 하고 지수 계산법 으로 표 시 된 문자열 을 되 돌려 줍 니 다.
num 이 너무 작 거나 너무 클 때 이상 RangeError 를 던 집 니 다.0~20 사이 의 값 은 이 이상 을 일 으 키 지 않 습 니 다.더 넓 은 범위 나 더 작은 범위 내 에서 지원 하 는 값 이 있 습 니 다.
이 방법 을 호출 한 대상 이 Number 가 아 닐 때 TypeError 이상 을 던 집 니 다.

<script type=”text/javascript”>
var num = new Number(13.376954);
document.write (num.toFixed(2))
</script>
  :13.38
2.사용자 정의 함 수 는 소수 보존 과 반올림 을 실현 합 니 다.

function roundFun(numberRound,roundDigit) { //    ,     roundDigit
if (numberRound>=0){
var tempNumber = parseInt((numberRound * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);
return tempNumber;
} else{
numberRound1=-numberRound;
var tempNumber = parseInt((numberRound1 * Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);
return -tempNumber;
}
}
그리고 roundFun()이라는 함 수 를 호출 하면 됩 니 다.예 를 들 어 roundFun('13.376954',2);물론 돌아 온 결 과 는 첫 번 째 방법 과 같다.
3.함수 캡 처 를 통 해 소수점 뒤의 몇 번 째 자 리 를 캡 처 합 니 다.물론 이런 방법 은 반올림 하지 않 습 니 다.

<script type=”text/javascript”>
tmp = 13.376954″
result = tmp.substr(0,tmp.indexOf(“.”)+2);
alert(result);
</script>
이상 은 바로 여러분 을 위해 정리 한 js 보류 두 소수 방법 에 대한 총 결 내용 입 니 다.당신 의 지지 에 감 사 드 립 니 다.만약 에 js 보류 두 소수 방법 에 대해 모 르 는 부분 이 있다 면 아래 의 댓 글 구역 에서 토론 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기