2017-03-03 3 views
0

Je veux convertir la valeur entière en Indian Numbering system. Je donne la valeur 540000 en entrée et en obtenant la valeur de sortie 5.4 Lac, mais je veux la réponse 5.40 Lac.Comment convertir les valeurs entières en lacs ou en crores (système de numérotation indien)

Mon code:

<?php 
function no_to_words($no) 
{ 
    if($no == 0) { 
     return ' '; 

    }else { 
     $n = strlen($no); // 7 
     switch ($n) { 
      case 3: 
       $val = $no/100; 
       $val = round($val, 2); 
       $finalval = $val ." Hundred"; 
       break; 
      case 4: 
       $val = $no/1000; 
       $val = round($val, 2); 
       $finalval = $val ." Thousand"; 
       break; 
      case 5: 
       $val = $no/1000; 
       $val = round($val, 2); 
       $finalval = $val ." Thousand"; 
       break; 
      case 6: 
       $val = $no/100000; 
       $val = round($val, 2); 
       $finalval = $val ." Lac"; 
       break; 
      case 7: 
       $val = $no/100000; 
       $val = round($val, 2); 
       $finalval = $val ." Lac"; 
       break; 
      case 8: 
       $val = $no/10000000; 
       $val = round($val, 2); 
       $finalval = $val ." Cr"; 
       break; 
      case 9: 
       $val = $no/10000000; 
       $val = round($val, 2); 
       $finalval = $val ." Cr"; 
       break; 

      default: 
       echo ""; 
     } 
     return $finalval; 

    } 
} 

?> 

Répondre

0

Votre problème est pas vraiment cette fonction, puisque les numéros 5.4 et 5.40 sont le même nombre, donc soit vous devez appliquer le formatage ici, ou à l'endroit où vous êtes en utilisant les résultats. Vérifiez la différence de ces 2:

echo round(540000/100000, 2); 

vs

echo sprintf("%2.2f", round(540000/100000, 2)); 

Le second montrera 2 décimales, puisque cela est défini dans le format. Vous n'avez pas vraiment besoin du tour si vous utilisez sprintf, il arrondira le nombre au format spécifié.

echo sprintf("%2.2f", 555555/100000);