> 웹 프론트엔드 > JS 튜토리얼 > javascript_javascript 기술에서 소수점 이하 두 자리를 유지하는 다양한 방법

javascript_javascript 기술에서 소수점 이하 두 자리를 유지하는 다양한 방법

WBOY
풀어 주다: 2016-05-16 15:25:04
원래의
2303명이 탐색했습니다.

첫 번째 방법: 소수점 두 자리와 한 자리를 사용하여 자동 제로 패딩 코드 예제를 자바스크립트로 구현한 예:
첫 번째 방법은 숫자의 소수점 이하 두 자리를 유지하는 효과를 얻는 방법을 소개합니다. 원래 소수점 이하 자릿수가 두 자리 미만인 경우 누락된 자리는 자동으로 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;
 }
}
var num=3.1;
console.log(returnFloat(num));
로그인 후 복사

위 코드는 우리의 요구 사항을 충족합니다. 구현 프로세스를 소개합니다.
코드 주석:
1.함수 returnFloat(value){}, 매개변수는 변환할 숫자입니다.
2.var value=Math.round(parseFloat(value)*100)/100, 이것이 함수의 핵심이어야 합니다.parseFloat(value)는 매개변수를 부동 소수점 숫자로 변환합니다. may be 소수점 이하 두 자리를 유지해야 하므로 문자열에 100을 곱합니다. 먼저 소수점을 두 자리 오른쪽으로 이동한 다음 Math.round() 메서드를 사용하여 반올림 계산을 수행하고 마지막으로 100으로 나눕니다. 소수점 이하 두 자리를 유지하는 목적도 있고 반올림 효과도 있지만 이는 완벽하지 않습니다. 매개변수 숫자 자체의 소수점 이하 자릿수가 2보다 크거나 같으면 3.1415와 같이 괜찮습니다. , 그러나 3이나 3.0과 같은 완벽한 구현은 아직 없습니다. 아래를 계속 살펴보세요.
3.var xsd=value.toString().split("."), 점 "." 값을 사용하여 배열로 구분합니다.
4.if(xsd.length==1){value=value.toString() ".00";return value;}, 배열의 길이가 1이면, 즉 소수가 없으면 다음과 같습니다. 숫자가 추가됩니다. 3과 같은 두 개의 0은 3.00으로 변환됩니다.
5.

if(xsd.length>1){
 if(xsd[1].length<2){
  value=value.toString()+"0";
 }
 return value;
 }
로그인 후 복사

if(xsd.length>1)은 숫자의 길이가 1보다 큰지, 즉 숫자에 소수가 있는지 여부를 확인하는 데 사용됩니다. 소수는 있지만 소수 자릿수가 적은 경우입니다. 3.1과 유사한 2보다 3.10으로 변환한 후 0을 추가하면 됩니다.

두 번째 방법: 소수점 이하 두 자리로 데이터 형식을 지정하는 JS 함수의 여러 방법을 요약합니다.

가장 좋은 방법:

이게 두 사람을 지키는 방법인 것 같아요

 var a = 9.39393; 
 alert(a.toFixed(2));
로그인 후 복사

지침:

alert(Number.toFixed(9.39393))
반품은 9.39
하지만 IE5.5 이상의 버전에서만 지원됩니다.

다른 방법:

방법 1:

 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; 
 } 
   } 
로그인 후 복사

방법 2:

<script> 
 tmp = "1234567.57232" 
 result = tmp.substr(0,tmp.indexOf(".")+3); 
 alert(result); 
 </script> 
로그인 후 복사

세 번째 방법: javascript는 소수점 이하 두 자리 코드를 유지합니다

<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에서 소수점 이하 두 자리를 유지하는 다양한 방법입니다. 모든 분들의 학습에 도움이 되길 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿