>웹 프론트엔드 >JS 튜토리얼 >소수점 두 자리를 유지하려면 소수점 형식을 조정하세요_javascript 기술

소수점 두 자리를 유지하려면 소수점 형식을 조정하세요_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:48:161537검색

개발 과정에서 소수점 이하 두 자리를 유지하는 등 소수점 형식을 조정해야 하는 경우가 종종 있습니다. 방법도 꽤 흔한데, 메모는 다음과 같다.

첫 번째 방법은 math.round를 사용하는 것입니다

var original=28.453
1) //"original"을 소수점 이하 두 자리로 반올림
var result=Math.round(original) * 100)/100; //28.45를 반환합니다.
2) // "원본"을 소수점 이하 1자리로 반올림합니다.
var result=Math.round(original*10)/10; //28.5를 반환합니다.

둘째, js1.5 이상에서는 toFixed(x)를 사용할 수 있으며, 이를 통해 소수점 이하 x자리를 가로채는 숫자를 지정할 수 있습니다.

3) //"원래"를 소수점 이하 두 자리로 반올림
var result =original.toFixed( 2); //28.45를 반환합니다.

4) // "원본"을 소수점 이하 1자리로 반올림합니다.
var result=original.toFixed(1); //28.5를 반환합니다.

위 둘 다 가장 일반적인 방법이지만 소수점 이하 두 자리를 유지하는 등 일부 특별한 요구 사항을 충족할 수 없습니다. 이 시점에서 세 번째 방법이 있습니다.

세 번째 유형은 변환 기능입니다. 이 코드는 외국 포럼에서 가져온 것입니다.

코드 복사 코드는 다음과 같습니다.

function roundNumber(number,decimals) {
var newString;// 새로운 반올림된 숫자
decimals = Number(decimals);
if (decimals < 1) {
newString = (Math.round(number)).toString();
} else {
var numString = number.toString();
if (numString.lastIndexOf(".") == -1) {// 소수점이 없는 경우
numString = "." ;// 끝에 1을 지정합니다.
}
var cutoff = numString.lastIndexOf(".") 소수점;// 숫자를 자르는 지점
var d1 = Number( numString.substring (cutoff,cutoff 1));// 마지막 소수점 이하 자릿수
var d2 = Number(numString.substring(cutoff 1,cutoff 2));// 다음 소수점, 마지막 소수점 이후
if (d2 >= 5) {// 반올림해야 합니까? 그렇지 않으면 문자열이 잘립니다.
if (d1 == 9 && cutoff > ; 0) {// 마지막 숫자가 9이면 새로운 컷오프 지점을 찾습니다.
while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {
if ( d1 != ".") {
cutoff -= 1;
d1 = Number(numString.substring(cutoff,cutoff 1))
} else {
cutoff -= 1; >}
}
}
d1 = 1;
}
if (d1 == 10) {
numString = numString.substring(0, numString.lastIndexOf("." ));
var roundedNum = Number(numString) 1;
newString = roundedNum.toString() '.';
} else {
newString = numString.substring(0,cutoff) d1. toString() ;
}
}
if (newString.lastIndexOf(".") == -1) {// 새 문자열
newString = ".";
}
var decs = (newString.substring(newString.lastIndexOf(".") 1)).length
for(var i=0;i//var newNumber = Number(newString);// 원하는 경우 숫자로 만듭니다.
document.roundform.roundedfield.value = newString; // 결과를 양식 필드에 출력합니다(변경 사항: 목적)
}

5) //"원본"을 소수점 이하 두 자리로 반올림
var result=original.toFixed(2) //returns 28.45

6) // "original"을 소수점 1자리로 반올림
var result=original.toFixed(1); //returns 28.5

var original=28.4
var result=original.toFixed(2) ; // 28.40을 반환합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.