Carcleo 4 Denunciar post Postado Abril 17, 2014 Nos campos Valores dos Tipos o sistema não esta entendendo valores acima de 999,00 Ou seja exemplo: Se um tipo tem o valor de 1500,00 ele entende que o valores é de 15,00 No MySQL, eu cadastrei o campo que é de moeda como apenas float. Não como float(10,2) ou outra notação. Simplesmente float. O que posso fazer para corrigir esse problema sem afetar os dados já gravados anteriormente? Outro problema que estou tendo é que estou gravando no banco todos os valores com ponto e não com virgula. Tipo, dez reais e quarenta centavos. Estou gravando 10.40 e não 10,40. Carlos Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Abril 17, 2014 Tenta assim: ALTER TABLE {nome_da_tabela} MODIFY {campo_float} FLOAT(10,2) Se não estou enganado, o MySQL faz a alteração no tipo do campo sem ter que excluir nenhuma linha, poderia perder alguma informação se mudasse de um VARCHAR para INT, ou algo do tipo, mas como é FLOAT para FLOAT, ele deve interpretar corretamente. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Abril 17, 2014 Sim. mas quando faço isso, o site que já esta gravando todos os valores com ponto em vez de virgula, terá que ser tudo alterado. Então pensei em um tipo do mysql que guardasse numeros em ponto flutuante que usasse ponto em vez de virgula. Será que existe? Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Abril 17, 2014 Número decimal é usado somente com ponto, para gravar o valor com vírgula somente em campo texto, o que não é correto. Mas você pode trabalhar livremente com ponto no banco de dados, e manipula a informação somente na hora de exibir, assim como, para gravar o valor, deve ser manipulado transformando o valor para que o MySQL funcione corretamente. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Abril 17, 2014 sim, mas quando vou alterar no phpmyadmin de float para decimal(10.2) ele cria decimal(10.00) Só aceita decimal(10,2) se for com virgula. Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Abril 17, 2014 Tudo bem, quero dizer que o tipo do campo deve ser separado com vírgula, mas os dados são, obrigatoriamente, tratados com ponto separando o decimal, esse tipo DECIMAL(10,2) quer dizer que os valores do campo são do tipo número com até 10 casas antes do ponto (separador decimal), e duas casas após o ponto. Para definir o tipo do campo é, por exemplo, 'valor_compra DECIMAL(10,2) NOT NULL DEFAULT 0'. Os valores aceitos podem chegar até 999999999.99 (separado por ponto, isso no valor do campo). Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Abril 17, 2014 Então quer dizer que mesmo eu fazendo no mysql o campo como DECIMAL(10,2) Com virgula ao invés de ponto, dá pra guardar lá um valor por exemplo: 153454.34 153454.34 Ao invés de 153454,34 Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Abril 17, 2014 Você está fazendo certo! O que não está entendendo é que os parâmetros do tipo do campo são separados por vírgula, mas os valores armazenados no campos devem sempre ser com ponto. Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Abril 17, 2014 Ah! Agora entendi! float(10,2) Isso trará um numero padrão gravado no formato 0.00 Acertei? Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Abril 17, 2014 Exato! Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Abril 18, 2014 Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites