개발 과정에서 소수점 이하 두 자리를 유지하는 등 소수점 형식을 조정해야 하는 경우가 종종 있습니다. 방법도 꽤 흔한데, 메모는 다음과 같다.
첫 번째 방법은 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을 반환합니다.