Преобразование числа в слова в индийском валютном формате с величиной паи

Использование PHP, как преобразовать число в индийский формат валютного слова с помощью paise (десятичное значение)

вход
190908100.25

Результат, который нам нужен

 nineteen crores nine lakh eight thousand one hundred Rupees .two five Paise 

Мне нужен этот метод преобразования в php .

Solutions Collecting From Web of "Преобразование числа в слова в индийском валютном формате с величиной паи"

Преобразование номера валюты в формат Word с помощью PHP

  <?php /** * Created by PhpStorm. * User: sakthikarthi * Date: 9/22/14 * Time: 11:26 AM * Converting Currency Numbers to words currency format */ $number = 190908100.25; $no = round($number); $point = round($number - $no, 2) * 100; $hundred = null; $digits_1 = strlen($no); $i = 0; $str = array(); $words = array('0' => '', '1' => 'one', '2' => 'two', '3' => 'three', '4' => 'four', '5' => 'five', '6' => 'six', '7' => 'seven', '8' => 'eight', '9' => 'nine', '10' => 'ten', '11' => 'eleven', '12' => 'twelve', '13' => 'thirteen', '14' => 'fourteen', '15' => 'fifteen', '16' => 'sixteen', '17' => 'seventeen', '18' => 'eighteen', '19' =>'nineteen', '20' => 'twenty', '30' => 'thirty', '40' => 'forty', '50' => 'fifty', '60' => 'sixty', '70' => 'seventy', '80' => 'eighty', '90' => 'ninety'); $digits = array('', 'hundred', 'thousand', 'lakh', 'crore'); while ($i < $digits_1) { $divider = ($i == 2) ? 10 : 100; $number = floor($no % $divider); $no = floor($no / $divider); $i += ($divider == 10) ? 1 : 2; if ($number) { $plural = (($counter = count($str)) && $number > 9) ? 's' : null; $hundred = ($counter == 1 && $str[0]) ? ' and ' : null; $str [] = ($number < 21) ? $words[$number] . " " . $digits[$counter] . $plural . " " . $hundred : $words[floor($number / 10) * 10] . " " . $words[$number % 10] . " " . $digits[$counter] . $plural . " " . $hundred; } else $str[] = null; } $str = array_reverse($str); $result = implode('', $str); $points = ($point) ? "." . $words[$point / 10] . " " . $words[$point = $point % 10] : ''; echo $result . "Rupees " . $points . " Paise"; ?> 
  • Вывод

    девятнадцать кроров девять тысяч восемь тысяч сто рупий. две пять Paise


    Теперь я добавил упрощенный метод следующим образом:

    
    

    Функция getIndianCurrency (число с плавающей запятой)
    {
    $ decimal = round ($ number – ($ no = floor ($ number)), 2) * 100;
    $ 100 = null;
    $ digits_length = strlen ($ no);
    $ i = 0;
    $ str = array ();
    $ words = array (0 => '', 1 => 'one', 2 => 'two',
    3 => «три», 4 => «четыре», 5 => «пять», 6 => «шесть»,
    7 => 'семь', 8 => 'восемь', 9 => 'девять',
    10 => 'десять', 11 => 'одиннадцать', 12 => 'двенадцать',
    13 => 'тринадцать', 14 => 'четырнадцать', 15 => 'пятнадцать',
    16 => 'шестнадцать', 17 => 'семнадцать', 18 => 'восемнадцать',
    19 => 'девятнадцать', 20 => 'двадцать', 30 => 'тридцать',
    40 => 'сорок', 50 => 'пятьдесят', 60 => 'шестьдесят',
    70 => 'семьдесят', 80 => 'восемьдесят', 90 => 'девяносто');
    $ digits = array ('', 'сто', 'тыс.', 'lakh', 'crore');
    while ($ i <$ digits_length) {
    $ divider = ($ i == 2)? 10: 100;
    $ number = floor ($ no% $ divider);
    $ no = floor ($ no / $ divider);
    $ i + = $ divider == 10? 1: 2;
    if ($ number) {
    $ plural = (($ counter = count ($ str)) && $ number> 9)? 's': null;
    $ 100 = ($ counter == 1 && $ str [0])? 'и': null;
    $ str [] = ($ number <21)? $ слов [$ номер] «. ». $ цифры [$ счетчик]. $ Множественного числа. $ 100: $ words [floor ($ number / 10) * 10]. ' $. $ words [$ number% 10]. '$. $ digits [$ counter]. $ plural.' »$ Сто.
    } else $ str [] = null;
    }
    $ Rupees = implode ('', array_reverse ($ str));
    $ paise = ($ decimal)? "" , ($ words [$ decimal / 10]. "". $ words [$ decimal% 10]). «Пейз»: '';
    return ($ Rupees? $ Rupees. 'Rupees': ''). $ paise.;
    }

вызов метода:

echo getIndianCurrency(79855995.19);

вывести семь с половиной девяносто восемь тысяч пятьдесят пять тысяч девятьсот девяносто пять рупий.