How to save numeric type in Mysql

1
Hello, I am using to save the price of a product in MYSQL numeric type (9,2) but on my system I am using Double and when printing it appears $ 2.2 instead of $ 2.20 what kind of data could use it to get all the decimal places?

// my Product class with Getter and Setter methods

public class Produto {
   private Double preco;

    public Double getPreco() {
        return preco;
    }

    public void setPreco(Double preco) {
        this.preco = preco;
    }

}

// Add Method

public void adiciona(Produto produto) {

        id_conexao = N.Conectar();
        String sql = "insert into produto (nome, preco, unidMedida, imgProduto) values (?,?,?,?)";

        try {

            //PreparedStatement para inserção
            stmt = id_conexao.prepareStatement(sql);

            //setar valores
            stmt.setString(1, produto.getNome());
            stmt.setDouble(2, produto.getPreco());
            stmt.setString(3, produto.getUnidMedida());
            stmt.setBytes(4, produto.getImgProduto());

            //executa
            stmt.execute();
            System.out.println("Salvo");


        } catch (SQLException e) {
            System.err.println("ERRO ao inserir produto - " + e);
        } finally {
            N.Desconectar();
        }

    }

// Creating object to send

Produto produto = new Produto();

produto.setNome(edtNome.getText().toString());                         
produto.setPreco(Double.parseDouble(edtPreco.getText().toString()));               
produto.setUnidMedida(txtUnidMedida.getText().toString());

// Printing object in Android interface

TextView nome = (TextView) rowView.findViewById(R.id.txtNome);
        TextView preco = (TextView) rowView.findViewById(R.id.txtPreco);
        TextView unidMedida = (TextView) rowView.findViewById(R.id.txtUnidMedida);
        //ImageView img_prod = (ImageView) rowView.findViewById(R.id.imgProduto);

        nome.setText(elementos.get(position).getNome());
        preco.setText(elementos.get(position).getPreco().toString());
        unidMedida.setText(elementos.get(position).getUnidMedida());
    
asked by anonymous 14.11.2017 / 00:40

1 answer

0

Ok, somewhere in your code (which you have not posted) you're printing the direct double, output examples:

2.2
1.999999
3.0

You want something you leave in the form of money, Real. then you must format Double to be printed in this way there are several ways to do this ex:

double preco = 2.20;
System.out.println( String.format( "%.2f", preco ) );

output examples:

2.20
1.99
3.00
    
14.11.2017 / 01:01