3v4l.org

run code in 300+ PHP versions simultaneously
<?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 );
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.5 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.7
float(45750) string(15) "000000004575000"

preferences:
166.96 ms | 404 KiB | 173 Q