2017-10-03 3 views
-1

php에서 단어 수를 계산하는 데 어려움이 있습니다. 29 명의 그리고 29 명의 : NumberFormatter 클래스를 사용하는 PHP의 단어 수

<?php 
 

 
    $num = 29.29; 
 
    $f = new NumberFormatter("en", NumberFormatter::SPELLOUT); 
 
    echo $f->format($num); 
 
    //outputs Twenty-nine and two nine 
 
?>

어떻게 해당 형식을 지정할 수 있습니다

?

도와주세요!

답변

2

먼저, Twenty nine point two nine 방법 29.29 발음해야합니다. 정확히 말하면, Twenty-nine and Twenty-nine을 얻을 필요가있는 경우 아래에서 사용할 수 있습니다.

<?php 
    $num = 29.29; 
    $exp = explode('.', $num); 
    $f = new NumberFormatter("en_US", NumberFormatter::SPELLOUT); 
    echo ucfirst($f->format($exp[0])) . ' and ' . ucfirst($f->format($exp[1])); 
    //outputs Twenty-nine and Twenty-nine 
?> 
+0

Whoooa, 나는 생각하지 않았습니다! 감사! – lazyfox

0
function numberTowords($num) 
{ 
    $ones = array(  
    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" 
    ); 
    $tens = array( 
    1 => "ten", 
    2 => "twenty", 
    3 => "thirty", 
    4 => "forty", 
    5 => "fifty", 
    6 => "sixty", 
    7 => "seventy", 
    8 => "eighty", 
    9 => "ninety" 
); 

$hundreds = array( 
    "hundred", 
    "thousand", 
    "million", 
    "billion", 
    "trillion", 
    "quadrillion" 
); 

$num = number_format($num,2,".",","); 
$num_arr = explode(".",$num); 
$wholenum = $num_arr[0]; 
$decnum = $num_arr[1]; 
$whole_arr = array_reverse(explode(",",$wholenum)); 
krsort($whole_arr); 
$rettxt = ""; 

foreach($whole_arr as $key => $i){ 

    if($i < 20){ 
     $rettxt .= $ones[$i]; 
    }elseif($i < 100){ 
     $rettxt .= $tens[substr($i,0,1)]; 
     @$rettxt .= " ".$ones[substr($i,1,1)]; 
    }else{ 
     $rettxt .= $ones[substr($i,0,1)]." ".$hundreds[0]; 
     $rettxt .= " ".$tens[substr($i,1,1)]; 
     $rettxt .= " ".$ones[substr($i,2,1)]; 
    } 
    if($key > 0){ 
     $rettxt .= " ".$hundreds[$key]." "; 
    } 
} 
if($decnum > 0){ 
    $rettxt .= " and "; 
if($decnum < 20){ 
    $rettxt .= $ones[intval($decnum) ]; 
}elseif($decnum < 100){ 
    $rettxt .= $tens[substr($decnum,0,1)]; 
    $rettxt .= " ".$ones[substr($decnum,1,1)]; 
} 
} 
return $rettxt; 
} 

echo numberTowords(29.29); 
모든

https://www.phptpoint.com/convert-number-into-words-in-php/

관련 문제