저는 현재 회사에 수표 인쇄 솔루션을 제공하고 있습니다. 수표를 발행 할 때 지급되는 금액에서 수백만, 수천, 십만, 수천, 수백, 수십 및 단위 (파운드/달러/유로 등)의 수를 인쇄해야합니다.수를 수천, 수백 등으로 나누십시오.
111232.23의 경우 아래에 작성한 코드에서 다음 내용이 올바르게 출력됩니다. 이 일을보다 효율적으로 또는 신뢰할 수있는 방법으로 생각하는 데 도움이되지 않습니까? 누구든지이 작업을 수행하는 라이브러리/클래스 수학 기법을 알고 있습니까?
float(111232.23)
Array
(
[100000] => 1
[10000] => 1
[1000] => 1
[100] => 2
[10] => 3
[1] => 2
)
<?php
$amounts = array(111232.23,4334.25,123.24,3.99);
function cheque_format($amount)
{
var_dump($amount);
#no need for millions
$levels = array(100000,10000,1000,100,10,1);
do{
$current_level = current($levels);
$modulo = $amount % $current_level;
$results[$current_level] = $div = number_format(floor($amount)/$current_level,0);
if($div)
{
$amount -= $current_level * $div;
}
}while($modulo && next($levels));
print_r($results);
}
foreach($amounts as $amount)
{
cheque_format($amount);
}
?>
당신은 PHP에서 소수 자릿수에서 숫자를 분리하고 for 루프를 마지막 위치 (길이)에서 첫 번째 (0)까지 분할 할 수 있다는 것을 알고 있습니까? 나는이 일을 당신의 영혼이 존경하는 동안 나는 그것이 더 빠를 것이라고는 생각하지 않습니다. – konqi