दिलचस्प पोस्ट
पायथन: datetime.today का मूल्य कैसे प्राप्त करें () जो कि "टाइमज़ोन जागरूक" है? डिफ़ॉल्ट asp.NET MVC 3 मॉडल बाइंडर दशमलव गुणों को बाध्य नहीं करता है जीजीप्लोट 2 पीडीएफ आउटपुट में यूनिकोड वर्ण सी #: हेकर के लिए कड़ी मेहनत कैसे करें / क्रैकर के पास जाओ या लायसेंसिंग की जांच बाईपास करें? क्लास जावा लॉकहेल्पर दो स्थानों पर लागू किया गया है मैमैड ड्राइव का वास्तविक पथ कैसे निर्धारित करूं? स्वचालित रूप से समायोजित करेंक्रॉलिव्यूइन्सेट्स काम नहीं कर रहे हैं जोडा-टाइम में दो तारीखों के बीच की संख्या पिछले और अगले पृष्ठ सीमाओं के साथ ViewPager कार्ड शफ़्लिंग सी # क्या Windows .xe "decompile" संभव है? या कम से कम विधानसभा को देखें? कारक स्तर और कारक लेबल के बीच भ्रम रोमन संख्या स्ट्रिंग को पूर्णांक मान कैसे परिवर्तित किया जाए? R.raw.anything को हल नहीं किया जा सकता क्या तेज है: in_array या isset?

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

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

जैसे

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

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

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

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"