दिलचस्प पोस्ट
संदर्भ बनाम बनाम जावास्क्रिप्ट जावा: त्रुटि: चर शुरू नहीं किया गया हो सकता है पायथन में कैसे काम करता है? मैं PowerShell को .NET 4 रनटाइम के साथ कैसे चला सकता हूं? स्क्रॉलटॉप के बाद तय की गई बटन पर मोबाइल सफारी बग प्रोग्रामैटिक रूप से बदल गया …? सी # परीक्षा अगर उपयोगकर्ता ने किसी फ़ोल्डर में प्रवेश लिखना है CaptivNetwork को बहिष्कृत करने के बाद आईओएस 9 में वाईफ़ाई एसएसआईडी कैसे प्राप्त करें और वाईफ़ाई नाम के लिए कॉल पहले से ही अवरुद्ध है वेबआरटीसी फ़ायरफ़ॉक्स बाधाएं कैसे uninitialized निरंतर रेक को ठीक करने के लिए :: Heroku पर डीएसएल समस्या? कोड से वर्तमान विधि का नाम कैसे प्राप्त करें दूसरे के बाद एक को निष्पादित करने के लिए मैं 3 कार्यों को कैसे कॉल करूँ? पायथन में एकाधिक पिंग स्क्रिप्ट एक एंड्रॉइड गतिविधि से ऑब्जेक्ट को किसी अन्य का उपयोग करने के लिए कैसे भेजा जा सकता है? सी ++ पढ़ता है और एक परमाणु का लेखन करता है? AngularJs $ http.post () डेटा नहीं भेजता है

स्टैक अतिप्रवाह प्रतिष्ठा प्रारूप के समान संख्याओं को प्रारूपित करने का तरीका

मैं स्टैक ओवरफ़्लो प्रतिष्ठा प्रदर्शन के समान एक प्रारूप के साथ स्ट्रिंग प्रतिनिधित्व में एक नंबर को परिवर्तित करना चाहता हूं।

जैसे

  • 999 == '99 9'
  • 1000 == '1,000'
  • 9999 == '9, 99 9'
  • 10000 == '10k'
  • 10100 == '10 .1 किमी '

वेब के समाधान से एकत्रित समाधान "स्टैक अतिप्रवाह प्रतिष्ठा प्रारूप के समान संख्याओं को प्रारूपित करने का तरीका"

एक अन्य दृष्टिकोण जो वास्तव में वांछित उत्पादन का उत्पादन करता है:

function getRepString (rep) { rep = rep+''; // coerce to string if (rep < 1000) { return rep; // return the same number } if (rep < 10000) { // place a comma between return rep.charAt(0) + ',' + rep.substring(1); } // divide and format return (rep/1000).toFixed(rep % 1000 != 0)+'k'; } 

आउटपुट परिणाम यहां देखें

अद्यतनः सीएमएस को चेक मिला और बेहतर जवाब मिला। किसी और वोट को अपना रास्ता भेजें

 // formats a number similar to the way stack exchange sites // format reputation. eg // for numbers< 10000 the output is '9,999' // for numbers > 10000 the output is '10k' with one decimal place when needed function getRepString(rep) { var repString; if (rep < 1000) { repString = rep; } else if (rep < 10000) { // removed my rube goldberg contraption and lifted // CMS version of this segment repString = rep.charAt(0) + ',' + rep.substring(1); } else { repString = (Math.round((rep / 1000) * 10) / 10) + "k" } return repString.toString(); } 

आउटपुट:

  • getRepString(999) == '999'
  • getRepString(1000) == '1,000'
  • getRepString(9999) == '9, 99 9'
  • getRepString(10000) == '10k'
  • getRepString(10100) == '10 .1k '

यहां PHP में एक फ़ंक्शन है जो iZend का हिस्सा है – http://www.izend.org/en/manual/library/countformat :

 function count_format($n, $point='.', $sep=',') { if ($n < 0) { return 0; } if ($n < 10000) { return number_format($n, 0, $point, $sep); } $d = $n < 1000000 ? 1000 : 1000000; $f = round($n / $d, 1); return number_format($f, $f - intval($f) ? 1 : 0, $point, $sep) . ($d == 1000 ? 'k' : 'M'); } 
  Handlebars.registerHelper("classNameHere",function(rep) { var repString; if (rep < 1000) { repString = rep; } else if (rep < 10000) { rep = String(rep); r = rep.charAt(0); s = rep.substring(1); repString = r + ',' + s; } else { repDecimal = Math.round(rep / 100) / 10; repString = repDecimal + "k"; } return repString.toString(); }); 

यहां सीएमएस का PHP में संस्करण है (मामले में किसी को इसकी ज़रूरत है, जैसे मैंने किया था):

 function getRepString($rep) { $rep = intval($rep); if ($rep < 1000) { return (string)$rep; } if ($rep < 10000) { return number_format($rep); } return number_format(($rep / 1000), ($rep % 1000 != 0)) . 'k'; } // TEST var_dump(getRepString(999)); var_dump(getRepString(1000)); var_dump(getRepString(9999)); var_dump(getRepString(10000)); var_dump(getRepString(10100)); 

आउटपुट:

 string(3) "999" string(5) "1,000" string(5) "9,999" string(3) "10k" string(5) "10.1k" 

1000 से विभाजित करें, यदि परिणाम 1 राउंड नंबर से अधिक होता है और अंत में "k" को सम्मिलित करता है

यदि परिणाम 1 से भी कम है, तो वास्तविक परिणाम वास्तविक रूप से होता है!

मैंने ऐसा करने के लिए एक एनपीएम (और बोवर ) मॉड्यूल बनाया है:

 npm install --save approximate-number 

उपयोग:

 var approx = require('approximate-number'); approx(123456); // "123k"