Converter uma valor para padrão aceitável no mySql
02/04/2018
0
Como vão desenvolvedores? estou com um probleminha em uma pequena aplicação que estou tentando encerrar.
Tenho um campo formatado, onde recebo um valor no formato 1.234,12.
Quero salvar esse valor no banco mysql, porem todos sabemos que o padrão aceito é 1234.12, aí que esta a minha dificuldade.
estou usando o seguinte codigo para transformar ele, coisa muito loca que fiz:
private double convertValorInfo(String valor_entrada) {
// transfroma em vetor
IntStream s = valor_entrada.chars();
double valor = 0;
// verifica a qtd de posiçoes... indica numeros com casas de milhares
if (s.count() > 6) {
String n = valor_entrada.replace(".", "");
String b = n.replace(",", ".");
valor = Double.parseDouble(b);
// System.out.println(valor);
} else {
// valores com casas abaixo de milhares
String n = valor_entrada.replace(",", ".");
valor = Double.parseDouble(n);
// System.out.println(n);
}
return valor;
}
Já tentei formatar usando a classe DecimalFormat, mas não consegui.
Tenho um campo formatado, onde recebo um valor no formato 1.234,12.
Quero salvar esse valor no banco mysql, porem todos sabemos que o padrão aceito é 1234.12, aí que esta a minha dificuldade.
estou usando o seguinte codigo para transformar ele, coisa muito loca que fiz:
private double convertValorInfo(String valor_entrada) {
// transfroma em vetor
IntStream s = valor_entrada.chars();
double valor = 0;
// verifica a qtd de posiçoes... indica numeros com casas de milhares
if (s.count() > 6) {
String n = valor_entrada.replace(".", "");
String b = n.replace(",", ".");
valor = Double.parseDouble(b);
// System.out.println(valor);
} else {
// valores com casas abaixo de milhares
String n = valor_entrada.replace(",", ".");
valor = Double.parseDouble(n);
// System.out.println(n);
}
return valor;
}
Já tentei formatar usando a classe DecimalFormat, mas não consegui.
Jederson Santana
Curtir tópico
+ 0
Responder
Post mais votado
10/04/2018
Cara, pesquisando na net, encontrei isso. Vê se e ajuda.
Daí você faz:
function convertCoin($xCoin = "EN", $xDecimal = 2, $xValue) { $xValue = preg_replace( '/[^0-9]/', '', $xValue); // Deixa apenas números $xNewValue = substr($xValue, 0, -$xDecimal); // Separando número para adição do ponto separador de decimais $xNewValue = ($xDecimal > 0) ? $xNewValue.".".substr($xValue, strlen($xNewValue), strlen($xValue)) : $xValue; return $xCoin == "EN" ? number_format($xNewValue, $xDecimal, '.', '') : ($xCoin == "BR" ? number_format($xNewValue, $xDecimal, ',', '.') : NULL); }
Daí você faz:
$xValue = "12345678"; // Podendo ser "R$ 123.456,78" ou somente "123.456,78" ou "123456,78" ou "123.45678" convertCoin("EN",0,$xValue); // 12345678 convertCoin("EN",1,$xValue); // 1234567.8 convertCoin("EN",2,$xValue); // 123456.78 convertCoin("EN",3,$xValue); // 12345.678 convertCoin("BR",0,$xValue); // 12.345.678 convertCoin("BR",1,$xValue); // 11.234.567,8 convertCoin("BR",2,$xValue); // 123.456,78 convertCoin("BR",3,$xValue); // 12.345,678
Ilano Frota
Responder
Clique aqui para fazer login e interagir na Comunidade :)