2011-12-15 4 views
59

"0"을 제거하는 가장 좋은 방법은 숫자를 XXX % 할인하여 백분율로 만드시겠습니까? 숫자가 int 인 경우 어떻게됩니까?숫자를 백분율로 설정하십시오.

var number1 = 4.954848; 
var number2 = 5.9797; 

$(document).ready(function() {  
    final = number1/number2; 
    alert(final.toFixed(2) + "%"); 
}); 

답변

128

백분율은 다음과 같습니다 공상 아무것도

(number_one/number_two) * 100 

필요가 : 당신이 0.123456 같은 번호가있는 경우

var number1 = 4.954848; 
var number2 = 5.9797; 

alert(Math.floor((number1/number2) * 100)); //w00t! 
+35

은 pct 십진수를 유지합니다. var pct = (num * 100) .toFixed (1) + "%"; – efwjames

+4

알림 (~~ ((number1/number2) * 100)); Math.floor는 ~~보다 느립니다. – nyxz

+1

왜 Math.floor입니까? 그리고 '수학. 주변'이 아니야? 여러분의 예제에서'4.954848/5.9797'은 코드 출력물의 82 %보다 '83 %'에 더 가깝습니다. – gaazkam

15

글쎄, 제공하는 부문의 결과입니다 그 백분율로 100을 곱한 다음 반올림하거나 예제에서 toFixed을 사용하십시오. 여기

Math.round(0.123456 * 100) //12 

는 할 수있는 jQuery 플러그인입니다 :

jQuery.extend({ 
    percentage: function(a, b) { 
     return Math.round((a/b) * 100); 
    } 
}); 

사용법 :

alert($.percentage(6, 10)); 
+14

'jQuery.round'와'jQuery.divide'와'jQuery.multiply'는 어디에 있습니까 – Raynos

+2

@ Xeon06 hmmm OP가 전환 한 것처럼 보입니다 그의 마음. 기묘한. 내 대답 **에는 ** jQuery가 충분하지 않았습니다. – Neal

+1

@Raynos 나는 문자열 조작을 사용하여 루프와 라운드를 사용하여 곱셈을 시작했지만 부서를 포기했습니다. –

16
((portion/total) * 100).toFixed(2) + '%' 
18

en가 영어 로케일입니다 가장 좋은 해결책 :

fraction.toLocaleString("en", {style: "percent"})

+0

스마트 폰에 대한 지원 여부를 조심하십시오 .... 현재 지원은 그다지 이상적이지 않습니다. – jdehaan

0

Numeral.js은 숫자, 통화, 백분율의 형식을 지정하고 현지화를 지원할 수 있도록 만든 라이브러리입니다.

numeral(0.7523).format('0%') // returns string "75%"

0

VAR 퍼센트 Math.floor = (100 * 숫자 1/숫자 2 - 100)를 '%'+;

관련 문제