2011-12-18 15 views
5

Por ejemplo $num='7,57,800';Formato de dinero PHP en moneda india?

¿Cómo puedo mostrar el valor de $number como 7,57 lakhs?

+0

cadena money_format (string $ formato, número flotante $) del manual de php? – PurplePilot

+1

Para aclaración: ¿está tratando de convertir '7,57,800' a' 7,55 Lakhs'? O tratando de convertir '757800' a' 7,57,800'? –

Respuesta

5

Aquí está la función:

function formatInIndianStyle($num){ 
    $pos = strpos((string)$num, "."); 
    if ($pos === false) { 
     $decimalpart="00"; 
    } 
    if (!($pos === false)) { 
     $decimalpart= substr($num, $pos+1, 2); $num = substr($num,0,$pos); 
    } 

    if(strlen($num)>3 & strlen($num) <= 12){ 
     $last3digits = substr($num, -3); 
     $numexceptlastdigits = substr($num, 0, -3); 
     $formatted = makeComma($numexceptlastdigits); 
     $stringtoreturn = $formatted.",".$last3digits.".".$decimalpart ; 
    }elseif(strlen($num)<=3){ 
     $stringtoreturn = $num.".".$decimalpart ; 
    }elseif(strlen($num)>12){ 
     $stringtoreturn = number_format($num, 2); 
    } 

    if(substr($stringtoreturn,0,2)=="-,"){ 
     $stringtoreturn = "-".substr($stringtoreturn,2); 
    } 

    return $stringtoreturn; 
} 

function makeComma($input){ 
    if(strlen($input)<=2) 
    { return $input; } 
    $length=substr($input,0,strlen($input)-2); 
    $formatted_input = makeComma($length).",".substr($input,-2); 
    return $formatted_input; 
} 
0

Marque esta plugin- http://archive.plugins.jquery.com/project/numberformatter

He aquí un ejemplo de cómo se tendría que utilizar este plugin.

$("#salary").blur(function(){ 
$(this).parseNumber({format:"#,###.00", locale:"us"}); 
$(this).formatNumber({format:"#,###.00", locale:"us"}); 
}); 

Sólo cambia la configuración regional ..

Para más información visita-ejemplo y http://code.google.com/p/jquery-numberformatter/

Mi fuente ejemplo: http://code.google.com/p/jquery-numberformatter/

Espero que esto ayude :)

0

Aquí es otra solución solo como referencia:

<?php 
# Output easy-to-read numbers 
# by james at bandit.co.nz 
function bd_nice_number($n) { 
    // first strip any formatting; 
    $n = (0+str_replace(",","",$n)); 

    // is this a number? 
    if(!is_numeric($n)) return false; 

    // now filter it; 
    if($n>1000000000000) return round(($n/1000000000000),1).' trillion'; 
    else if($n>1000000000) return round(($n/1000000000),1).' billion'; 
    else if($n>1000000) return round(($n/1000000),1).' million'; 
    else if($n>1000) return round(($n/1000),1).' thousand'; 

    return number_format($n); 
} 
?> 
0
<?php //Credits are going to: @Niet-the-Dark-Absol 

    function indian_number_format($num){ 
     $num=explode('.',$num); 
     $dec=(count($num)==2)?'.'.$num[1]:'.00'; 
     $num = (string)$num[0]; 
     if(strlen($num) < 4) return $num; 
     $tail = substr($num,-3); 
     $head = substr($num,0,-3); 
     $head = preg_replace("/\B(?=(?:\d{2})+(?!\d))/",",",$head); 
     return $head.",".$tail.$dec; 
    } 
?> 

Pregunta: stackoverflow.com/questions/10042485

Cuestiones relacionadas