2010-04-24 26 views
8

में संख्या को कैसे प्रारूपित कर सकता हूं "6k विचार" का अर्थ क्या है और मैं इस नंबर को PHP में कैसे प्रारूपित कर सकता हूं?'6k विचार' का अर्थ क्या है और मैं PHP

+1

* (संबंधित) * http: //en.wikipedia।संगठन/विकी/एसआई_prefix – Gordon

उत्तर

24

केKilo prefix का संक्षिप्त नाम है और इसका अर्थ हजारों है। तो 6k मतलब छह हजार है।

आप विभाजन का उपयोग कर निम्नलिखित समारोह के साथ इस तरह से एक नंबर फ़ॉर्मेट कर सकते हैं:

function format($number) { 
    $prefixes = 'kMGTPEZY'; 
    if ($number >= 1000) { 
     for ($i=-1; $number>=1000; ++$i) { 
      $number /= 1000; 
     } 
     return floor($number).$prefixes[$i]; 
    } 
    return $number; 
} 

या लघुगणक आधार 10 और घातांक का उपयोग कर:

function format($number) { 
    $prefixes = 'kMGTPEZY'; 
    if ($number >= 1000) { 
     $log1000 = floor(log10($number)/3); 
     return floor($number/pow(1000, $log1000)).$prefixes[$log1000-1]; 
    } 
    return $number; 
} 
+0

जब मैं kformat echo ('6000'); यह मुझे 6 मीटर नहीं 6k –

+0

@moustafa: फिक्स्ड है। – Gumbo

+0

असल में यह '1k 10k 100k 500M 500M 50000M 333333G'' सरणी (1000, 10000, 100000, 1000000, 1000000, 100000000, 1000000000) के लिए देता है; ' – Gordon

2

6k में, k का अर्थ है kilo (मुझे उम्मीद है कि आप जानते हैं) जो 6000 के बराबर है। आप हजारों आकृति को k के साथ प्रतिस्थापित करते हैं, यही वह है। उम्मीद है कि मदद करता है :)

+0

किलो मतलब किलो ग्राम या किलो मीटर –

+0

ठीक है अब मैं इसे PHP –

+0

@moustafa: hmmm :) मीटर और ग्राम अलग-अलग इकाइयों में आसान तरीके से कैसे बना सकता हूं, बस ** किलो ** पर ध्यान केंद्रित करें ** अंश। – Sarfraz

3

"6k विचार" का मतलब 6 किलो-विचार या 6,000 विचार है। आप 1000 से PHP में इस संख्या intval का उपयोग करने और गुणा निकाल सकते:

$val = intval("6k views") * 1000; // = 6000 
2
  1. कश्मीर का मतलब है 1000, इसलिए '6k विचारों' = 6000 बार देखा गया।
  2. सामान्यतः, किसी पृष्ठ पर प्रत्येक पहुंच पर, डेटाबेस में एक काउंटर 1 से बढ़ जाता है। यह प्रत्येक पृष्ठ पहुंच और मुद्रित पर पूछताछ करता है।
  3. मूल्य पूछने के बाद, इसे 1000 से विभाजित करें और संख्या में 'के' जोड़ें (यदि संख्या> 1000 है)।
11

स्टैक ओवरव्लो पर '6k विचार' एक प्रश्न प्राप्त होने वाले विचारों की संख्या को संदर्भित करता है। इसका मतलब 6000 विचार है।

आप php में एक समान शैली संख्या स्वरूप करने के लिए देख रहे हैं तो जाहिर है आप मीटर, जी और टी विचारों के लिए मामलों में जोड़ सकते हैं अगर वांछित तरह

$number = ""; 
if($value > 1000) 
{ 
    $number .= floor($value/1000) . "k"; 
} else { 
    $number .= $value; 
} 
echo $number . " views". 

कुछ प्रयास करें।

+0

+1 होगा, जियोफ़ - SO में आपका स्वागत है :-) –

+0

धन्यवाद, हालांकि गम्बो का जवाब न भूलें। यह स्पष्ट रूप से अधिक सामान्य है, अगर uninitiated के लिए थोड़ा और गूढ़ है। – Geoff

3
$number="6000"; 
$val=($number/1000)."k"; 
//= 6k 

या यदि $number="6k";

echo str_replace("k","000",$number); 
+0

अच्छा ट्रिक धन्यवाद –

7

http://tamlyn.org/2008/12/formatting-bytes-with-significant-figures-in-php/

/** Calculate $value to $sigFigs significant figures */ 
function sigFig($value, $sigFigs = 3) { 
    //convert to scientific notation e.g. 12345 -> 1.2345x10^4 
    //where $significand is 1.2345 and $exponent is 4 
    $exponent = floor(log10(abs($value))+1); 
    $significand = round(($value 
     /pow(10, $exponent)) 
     * pow(10, $sigFigs)) 
     /pow(10, $sigFigs); 
    return $significand * pow(10, $exponent); 
} 

/** Format $value with the appropriate SI prefix symbol */ 
function format($value, $sigFigs = 3) 
{ 
    //SI prefix symbols 
    $units = array('', 'k', 'M', 'G', 'T', 'P', 'E'); 
    //how many powers of 1000 in the value? 
    $index = floor(log10($value)/3); 
    $value = $index ? $value/pow(1000, $index) : $value; 
    return sigFig($value, $sigFigs) . $units[$index]; 
} 

*11 कर से संक्षिप्त क्योंकि *10 भी स्पष्ट

for($number = 100; $number < 100000000000000000000; $number*=11) { 
    echo format($number), PHP_EOL; 
} 

देता

100 1.1k 12.1k 133k 1.46M 16.1M 177M 1.95G 21.4G 236G 2.59T 28.5T 314T 3.45P 38P 418P 4.59E 50.5E 

आप दशमलव की जरूरत है, का उपयोग करें ऊपर, और Gumbo के समाधान अधिक कॉम्पैक्ट है। देता है:

100 1k 12k 133k 1M 16M 177M 1G 21G 235G 2T 28T 313T 3P 37P 417P 4E 50E 
+0

यदि कोई संख्या 0 है तो यह एक त्रुटि देता है – bertmaclin

0
function sigFig($value, $sigFigs = 3) { 
    setlocale(LC_ALL, 'i[email protected]', 'it_IT', 'it'); 
    $exponent = floor(log10(abs($value))+1); 
    $significand = round(($value 
     /pow(10, $exponent)) 
     * pow(10, $sigFigs)) 
     /pow(10, $sigFigs); 
    return $significand * pow(10, $exponent); 
} 

function format($value, $sigFigs = 3) 
{ 
    $numero = $value; 

    if ($numero > 9999) { 

     $units = array('', 'k', 'M', 'G', 'T', 'P', 'E'); 

     $index = floor(log10($value)/3); 
     $value = $index ? $value/pow(1000, $index) : $value; 
     return sigFig($value, $sigFigs) . $units[$index]; 
    }else{ 
     return number_format($numero, 0, '', '.'); ; 
    } 

    //Resultados: 
     //9999 -> 9.999 views 
     //10000 -> 10k views 
     //10200 -> 10,2k views 
} 
संबंधित मुद्दे