Converter uma valor para padrão aceitável no mySql
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
Curtidas 0
Melhor post
Ilano Frota
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
GOSTEI 1