Ir para conteúdo
Bobrinha

Problema com números int ao intanciar classe 0123 vira 83

Recommended Posts

Olá, estou com um probleminha desconhecido, ao criar uma instancia conforme mudo os valores os números no debug não são os mesmos o que poderia ser ou o que é?

 

class Conta {
    
    public $agencia;
    public $numero;
    public $saldo;

    function __construct($agencia, $numero, $saldo) {
        $this->agencia = $agencia;
        $this->numero = $numero;
        $this->saldo = $saldo;
    }
}

Ao realizar a intancia da classe exemplo abaixo

$conta = new Conta(043, 0123, 100);

no debug fica com outros números

public 'agencia' => int 35 
public 'numero' => int 83 
public 'saldo' => int 100

Vejo que não posso colocar números começando com 0 mais por que isso? e como colocar número começando com um ou mais zeros?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Numéricos que iniciam com 0 são interpretados como sendo de base octal.

https://secure.php.net/manual/en/language.types.integer.php#language.types.integer.syntax

 

Se o seu número precisa de um 0 na frente, ele não é um número, é uma string. Visto que zeros à esquerda não possuem representação numérica.

  • +1 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Bruno Goedert Dalmolin
      Não consigo apresentar as palavras equivalentes conseguem me ajudar???
      O código é o seguinte: 
       
      #include <stdio.h>
      char equivale(int ddd){
          switch(ddd){
              case 61:
                  return "Brasilia";
                  break;
              case 71:
                  return "Salvador";
                  break;
              case 11:
                  return "Sao Palo";
                  break;
              case 21:
                  return "Rio de Janeiro";
                  break;
              case 32:
                  return "Juiz de Fora";
                  break;
              case 19:
                  return "Campinas";
                  break;
              case 27:
                  return "Vitoria";
                  break;
              case 31:
                  return "Belo Horizonte";
                  break;
          }
      }
      int main(){
          int ddd;
          scanf("%d",&ddd);
          equivale(ddd);
          printf("%d",equivale(ddd));
      }
    • Por Rodymb
      Bom dia!
       
      Preciso fazer um update em um campo do tipo  int de uma tabela para corrigir o horário e a informação que estou buscando está em um campo do tipo datetime de outra tabela. Fiz um update da seguinte forma:
       
      update zan_m00 set m00zc=(SELECT convert(varchar(11),dataemissao,114) FROM tab_nota_header where dataemissao between '2018-08-01 00:00:00' and '2018-08-01 23:59:59' and numpdv=111 and codloja=1 and numnota=74841) where m00af='2018-08-01' and m00za=1 and m00ac=111 and m00ad=69614
       
      Esse update retornou a seguinte mensagem:
      Falha ao converter o varchar valor '11:56:57:00' para o tipo de dados int.
       
      No lugar onde está varchar experimentei usar int, entretanto, ele faz o update somando todo o conteúdo do campo, também usei o CAST e o problema é o mesmo.
      Se eu fizer somente o select, ele retorna pra mim somente a hora, que é o que preciso, mas aí tem outro problema, no campo tipo int a hora é tudo junto 115657 e nesse select ele retorna 11:56:57.
       
      Existe alguma forma de fazer esse update da forma que preciso?
       
    • Por TeixeiraRamos
      Tenho as páginas:
      "inserir.asp" , "lista.asp" e "gerencia-registro.asp". Essa páginas infelizmente criei mas só tem exemplo de campo varchar e date.
      Gostaria criar um campo tipo número "int".
       
      Inclui dois campos na tabela do banco de dados os dois como número "int" .
      Em "inserir.asp" tem os campos varchar, date e o int que entrei agora (mostrei todos os tipo), mas a dúvida é em pagina_inicial e pagina_final. 
      nome_editora = rs("nome_editora") data_inicio = rs("data_inicio") data_termino = rs("data_termino") pagina_inicial = rs("pagina_inicial") pagina_final = rs("pagina_final") no form
      <tr> <td>Pag.Inicial:</td> <td> <input name="FormPagInicial" size="15" maxlength="15" value="<%=pagina_inicial%>" /> </td> </tr> <tr> <td>Pag.Final:</td> <td> <input name="FormPagFinal" size="15" maxlength="15" value="<%=pagina_final%>" /> </td>  
      Na "lista.asp"
      <td><%=rs("pagina_inicial")%></td> <td><%=rs("pagina_final")%></td> Em "gerencia-registro.asp"
       
      sql = sql & "'" & Request.Form("FormNomeLivro") & "', " sql = sql & "'" & Request.Form("FormNomeAutor") & "', " sql = sql & "'" & Request.Form("FormNomeEditora") & "', " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataInicio") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataTermino") &"','%d/%m/%Y')" & ", " sql = sql & " " & Request.Form("FormPagInicial") & ", " sql = sql & " " & Request.Form("FormPagFinal") & ", " Todos os campos, varchar, date estão funcionando corretamente, ou seja, inclusão, alteração.
      Somente esses dois campos FormPagInicial e FormPagFinal que não consigo fazer inclusão no banco de dados.
      Tentando incluir um novo registro mostra esse erro em:
       
       
       
      Tem alguma coisa errada. Já tentei alterar as aspas simples, compostas, mas nada...
       
      sql = sql & " " & Request.Form("FormPagInicial") & ", " sql = sql & " " & Request.Form("FormPagFinal") & ", "  
      Mas, para que criar dois campos números de página com tipo "int"?
      Desejo fazer calculo com os dos campos página inicial e final.
      Obrigado
       
       
       
       
       
       
       
       
    • Por Levi de Moraes Cardoso
      Senhores(as) boa tarde,
       
      Criei uma tabela para as fichas técnicas de motos em meu site. Um dos campos nomeado VISA configurado como INT(255), mostra o número de views que aquela ficha técnica recebeu e é computado sempre que a página é acessada. Porém quando se chega a pouco mais de 4500 views, o campo volta a ficar zerado e começa a contar novamente. Aconteceu com vários registros. Existe uma forma mais correta de configurar este campo para que ele continue computando e não volte a zerar?  
    • Por Gabrielvt14
      Olá pessoal,
       
      Estou começando a brincar com o PHP orientado a objetos, e me deparei com um  probleminha...
       
      Criei uma função bem besta pra retornar o ano atual...
       
      <?php class Ano { public function __construct() { return $ano = date('Y'); } } echo $ano = new Ano(); Quando dou echo no objeto da classe aparece a mensagem dizendo que o objeto da classe não pode ser convertido em string.
       
      Como eu faria para mostrar o retorno deste objeto na tela?
       
      Desde ja agradeço!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.