2011-12-15 31 views
59

"%" XXX% 'i bir sayıdan çıkarmanın ve onu yüzde yapmanın en iyi yolu nedir? Sayı bir int olduğunda ne olur?Bir sayı yapın Yüzde

var number1 = 4.954848; 
var number2 = 5.9797; 

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

cevap

128

bir yüzdesi sadece geçerli: fantezi bir şey için

(number_one/number_two) * 100 

gerek yok: Eğer 0.123456 gibi bir numara varsa

var number1 = 4.954848; 
var number2 = 5.9797; 

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

pct ondalık değerini korumak için: var pct = (num * 100) .tofixed (1) + "%"; – efwjames

+4

uyarısı (~~ ((number1/number2) * 100)); Math.floor olarak daha yavaş ~~ :) – nyxz

+1

Neden Math.floor'? Math.round değil mi? Kendi örneğinizde bile "4.954848/5.9797" kod çıkışlarınızdan "% 82" ye "% 83" daha yakındır. – gaazkam

15

Eh, vermek için bir bölünme sonucu olduğunu bir yüzde, 100 ile çarpın ve sonra ya yuvarlak ya da örneğinizde olduğu gibi toFixed kullanın. İşte

Math.round(0.123456 * 100) //12 

bunu yapmak için jQuery eklentisi geçerli:

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

Kullanımı:

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

Burada jQuery.round' ve jQuery.divide ve jQuery.multiply' – Raynos

+2

@ Xeon06 hmmm var. onun zihni. tuhaf. Cevabım ** içinde yeterli jQuery yok **. – Neal

+1

@Raynos Bir döngü ve bir dizi dize manipülasyon kullanarak bir çoğaltma ile başladık, ancak bölümden vazgeçtim. –

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

en ingilizce yerel olan en iyi çözüm:

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

+0

Akıllı telefonlarda destek olup olmamasına dikkat edin .... Şu anda destek bu kadar ideal değil. – jdehaan

0

Numeral.js Numaraları, para birimlerini, yüzdelerini biçimlendirebilen ve yerelleştirme için destek alabilen bir kitaplıktır.

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

0

var yüzde = Math.floor (100 * number1/number2 - 100) '%' +;