개발 과정에서 소수점 후 소수점 이하 두 자리를 유지하는 등 조정 해야하는 형식을 종종 만나십시오.이 방법은 매우 일반적입니다. 다음에 주목하십시오.
첫 번째는 Math.round를 사용하는 것입니다
var Original = 28.453
1) // "원래"라운드 "원래"라운드
var result = math.round (원본*100)/100; // 28.45를 반환합니다
2) // "원래"라운드 "원본"으로 1 진수
var result = math.round (원본*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를 반환합니다
위의 두 가지 방법이 가장 일반적이지만 특정 특별 요구 사항을 충족시킬 수는 없습니다. 예를 들어, 소수점 이후 두 십자 자리를 유지합니다. 두 자릿수 미만인 경우 0을 보충합니다. 현재 세 번째 방법이 있습니다.
세 번째 유형은 변환 기능입니다. 이 코드는 외국 포럼에서 나옵니다.
코드 사본은 다음과 같습니다.
함수 RoundNumber (숫자, 소수) {
var Newstring; // 새로운 둥근 번호
Decimals = 숫자 (Decimals);
if (decimals <1) {
Newstring = (Math.Round (NUMBER)). TOSTRING ();
} 또 다른 {
var numstring = number.toString ();
if (numstring.lastindexof ( ".") == -1) {// 소수점이없는 경우
NumString += "."; // 끝에 하나를 준다
}
var cutoff = numstring.lastindexof ( ".") + decimals; // 숫자를 자르는 지점
var d1 = number (numstring.substring (컷오프, 컷오프+1)); // 우리가 끝날 마지막 소수점의 값
var d2 = number (numstring.substring (컷오프+1, 컷오프+2)); // 다음 소수점, 마지막으로 우리가 원하는 마지막 것.
if (d2> = 5) {// 반올림해야합니까? 그렇지 않다면 문자열이 잘립니다
if (d1 == 9 && 컷오프> 0) {// 마지막 자리가 9 인 경우 새 컷오프 지점을 찾으십시오.
while (컷오프> 0 && (d1 == 9 || isnan (d1))) {
if (d1! = ".") {
컷오프 -= 1;
d1 = number (numstring.substring (컷오프, 컷오프+1));
} 또 다른 {
컷오프 -= 1;
}
}
}
D1 += 1;
}
if (d1 == 10) {
numString = numString.substring (0, numstring.lastIndexof ( "."));
var roundednum = 숫자 (numstring) + 1;
Newstring = RoundedNum.toString () + '.';
} 또 다른 {
NewString = numstring.substring (0, 컷오프) + d1.toString ();
}
}
if (Newstring.lastIndexof ( ".") == -1) {// 새로운 문자열로 다시 수행하십시오.
Newstring += ".";
}
var decs = (Newstring.substring (Newstring.lastIndexof ( ".")+1)). 길이;
for (var i = 0; i <decimals-decs; i ++) Newstring+= "0";
// var newNumber = number (Newstring); // 원하는 경우 숫자로 만듭니다.
document.roundform.roundedfield.value = Newstring; // 결과를 양식 필드에 출력 (목적으로 변경)
}
5) // "원래"라운드 "원래"라운드
var result = original.tofixed (2); // 28.45를 반환합니다
6) // "원래"라운드 "원본"으로 1 진수
var result = original.tofixed (1); // 28.5를 반환합니다
var Original = 28.4
var result = original.tofixed (2); // 28.40을 반환합니다