3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php function getValorDecimal($linhaDados, $posicaoInicial, $tamanhoCampo, $decimal = 0) { $retorno = ""; $retorno = substr($linhaDados,$posicaoInicial-1 , $tamanhoCampo ); $retorno = trim($retorno); $retorno = str_replace(".","", $retorno); $retorno = str_replace(",",".", $retorno); if ($retorno != "") { $retorno = ltrim($retorno,'0'); if ($retorno == '') { $retorno = '0'; } if ($retorno != 0 && $decimal != 0) { $divisor = str_pad('1', $decimal + 1, '0'); $retorno = round($retorno / $divisor , $decimal); } } return $retorno; } function getValor2DecAlignRight($dado, $size, $completa = "0"){ $new = ""; if ($dado != ''){ $new= number_format($dado,2,'',''); $new = str_pad(substr($new,0,$size), $size, $completa, STR_PAD_LEFT); }else{ $new = str_pad(substr($new,0,$size), $size, $completa, STR_PAD_LEFT); } return $new; } $currentLine = '000000004575000'; $valor = getValorDecimal($currentLine, 1, 15, 2); var_dump( $valor ); $valor = getValor2DecAlignRight((string) $valor, 15); var_dump( $valor );
based on k1Yhk
Output for 5.6.0 - 5.6.30, hhvm-3.15.4, 7.0.0 - 7.3.0beta1
float(45750) string(15) "000000004575000"