java - 将 double 转换为小数点后两位

标签 java

我在数据库中得到一个数据类型为 decimal(18,2) 的表列作为价格。当我创建一个产品时,假设我输入 15.50 美元,它在数据库中存储为 15.50。但是,当我尝试从数据库中检索值作为 Double 并显示在表中时,它显示 15.5。这是我在表中设置价格的方式:

 TableColumn prodPriceCol = new TableColumn("PRICE ($)");
 prodPriceCol.setCellValueFactory(new PropertyValueFactory<Product, Double>("prodPrice"));
 prodPriceCol.setMinWidth(100);

然后在我的产品类中:

private SimpleDoubleProperty prodPrice;

 public void setprodPrice(double value) {
    prodPriceProperty().set(value);
}

public Double getprodPrice() {
    return prodPriceProperty().get();
}

public SimpleDoubleProperty prodPriceProperty() {
    if (prodPrice == null) {
        prodPrice = new SimpleDoubleProperty(this, "prodPrice");
    }
    return prodPrice;
}

还有我的 SQL:

String sql = "SELECT * FROM sm_product WHERE productCategory = '" + category + "'";
        ResultSet rs = null;
        // Call readRequest to get the result
        rs = db.readRequest(sql);

        while (rs.next()) {
            String ID = rs.getString("productID");
            String name = rs.getString("productName");
            String desc = rs.getString("productDescription");
            double price = rs.getDouble("productPrice");

顺便说一句,我是在 JavaFX 中进行的。

最佳答案

使用 DecimalFormat 将 double 值格式化为格式化字符串.

String priceString = new DecimalFormat("$##.##").format(price);

输出 -

$15.50

关于java - 将 double 转换为小数点后两位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17521339/

相关文章:

java - 为什么在 Eclipse 中和从命令行运行 Java 程序时 ThreadPoolExecutor 的行为不同?

java - 用java显示数据库中的Blob

java - Twitter 的架构图是什么样子的?

java - Spring Data REST + Hibernate 5 + Jackson LAZY 序列化失败

java - GWT JPA - 无法反序列化响应

Java输入错误

java - 如何确保当我读取 bufferedReader 时该行不为空?

java - 有没有maven sleep 功能?

java - Arrays.asList 有效

java - 未找到具有 URI 的 HTTP 请求的映射(spring 4.1 注释配置)