js 보류 두 소수 방법 총화
9104 단어 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 보류 두 소수 방법 에 대해 모 르 는 부분 이 있다 면 아래 의 댓 글 구역 에서 토론 할 수 있 습 니 다.