एक संख्या को एक प्रतिशत बनाएं


104

"0." XXX% को एक नंबर से अलग करने और इसे प्रतिशत बनाने का सबसे अच्छा तरीका क्या है? यदि संख्या एक इंट होने के लिए होती है तो क्या होगा?

var number1 = 4.954848;
var number2 = 5.9797;

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

जवाबों:


199

एक प्रतिशत बस है:

(number_one / number_two) * 100

कुछ भी नहीं फैंसी की जरूरत है:

var number1 = 4.954848;
var number2 = 5.9797;

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

47
pct दशमलव रखने के लिए: var pct = (num * 100) .toFixed (1) + "%";
efwjames

5
चेतावनी (~~ ((नंबर 1 / नंबर 2) * 100)); जैसा कि Math.floor ~~ :) की तुलना में धीमा है
nxxz

1
क्यों Math.floor? और नहीं Math.round? यहां तक ​​कि आपके उदाहरण 4.954848 / 5.9797में आपके कोड आउटपुट की 83%तुलना में करीब है 82%
गाज़कम

9
@nyxz Ugg-- आप इंसानों के लिए कोड लिखते हैं, मशीनों के लिए नहीं। जब तक आप कुछ सुपर-टाइट क्रिटिकल लूप में न हों, तब तक ~~पढ़ने की Math.floor
क्षमता

5
कोई कारण नहीं जो मुझे पता हो। सभी प्रतिशत का 83% वैसे भी बना हुआ है
नफ्ताली उर्फ ​​नील


36

सबसे अच्छा समाधान, enअंग्रेजी स्थान कहां है:

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


1
स्मार्टफोन पर समर्थन या नहीं के लिए सावधान रहें .... वर्तमान में समर्थन उस आदर्श नहीं है।
जद्दन

(9.23) .toLocaleString ("en", {style: "प्रतिशत"}) "923%" लौटाता है, क्या इसे हल करने का कोई तरीका है?
slorenzo

2
@ Slorenzo 9.23 वास्तव में 923% है। मान लें कि आप 9.23% चाहते हैं, तो आपको 9.23 को 100 से विभाजित करना होगा और फिर रूपांतरण का प्रयास करना होगा।
स्टीव हॉकिन्स

3
साथ ही आप की तरह कुछ की कोशिश कर सकते दशमलव अंक प्राप्त करने के लिए @slorenzo fraction.toLocaleString("en", { style: "percent", minimumFractionDigits: 2 })देखें stackoverflow.com/a/29773435/411428
मैनफ्रेड

16

ठीक है, अगर आपके पास एक संख्या है 0.123456जो प्रतिशत देने के लिए एक विभाजन का परिणाम है, तो इसे 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));

15
कहां है jQuery.roundऔर jQuery.divideऔरjQuery.multiply
Raynos

2
@ Xeon06 हम्म् ओपी को लगता है कि उसने अपना दिमाग बदल लिया है। अजीब। मेरे जवाब में पर्याप्त jQuery नहीं था
नफतली उर्फ ​​नील

2
@ रेयानोस मैंने स्ट्रिंग हेरफेर के उपयोग से एक लूप और एक राउंड का उपयोग करके गुणा पर शुरू किया था, लेकिन मैंने विभाजन पर छोड़ दिया।
एलेक्स टर्पिन

2

Numeral.js एक पुस्तकालय है जिसे मैंने बनाया है जो संख्या, मुद्रा, प्रतिशत को प्रारूपित कर सकता है और स्थानीयकरण के लिए समर्थन करता है।

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


1
numeral.js27 मार्च 2017 के लिए अंतिम प्रतिबद्धता थी। या तो पुस्तकालय परिपूर्ण है (कोई दोष नहीं) या अब इसे सक्रिय रूप से बनाए नहीं रखा गया है। 28 जनवरी 2019 तक परियोजना में 135 खुले मुद्दे हैं जो सबसे पुराने नवंबर 2012 से हैं। लगभग 2 वर्षों में बिना किसी प्रतिबद्ध के खुले मुद्दों की संख्या बताती है कि परियोजना की अब कोई देखभाल नहीं है। अन्यथा आश्वस्त होने के लिए खुश।
मैनफ्रेड


1

अधिकांश उत्तर अंत में '%' को जोड़ने का सुझाव देते हैं। मैं बल्कि इसके Intl.NumberFormat()साथ पसंद करूंगा{ style: 'percent'}

var num = 25;

var option = {
  style: 'percent'

};
var formatter = new Intl.NumberFormat("en-US", option);
var percentFormat = formatter.format(num / 100);
console.log(percentFormat);


0

@ xtrem का जवाब अच्छा है, लेकिन मुझे लगता है कि toFixedऔर makePercentageआम उपयोग हैं। दो कार्यों को परिभाषित करें, और हम हर जगह इसका उपयोग कर सकते हैं।

const R = require('ramda')
const RA = require('ramda-adjunct')

const fix = R.invoker(1, 'toFixed')(2)

const makePercentage = R.when(
  RA.isNotNil,
  R.compose(R.flip(R.concat)('%'), fix, R.multiply(100)),
)

let a = 0.9988
let b = null

makePercentage(b) // -> null
makePercentage(a) // -> ​​​​​99.88%​​​​​

2
हालांकि यह कोड स्निपेट प्रश्न को हल कर सकता है, जिसमें स्पष्टीकरण सहित वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और उन लोगों को आपके कोड सुझाव के कारणों का पता नहीं चल सकता है।
31piy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.