データベースから小数点以下2桁のデータを取得する際に問題があります。 私はresultset.getDouble()メソッドを使用していました。しかし、これは私に結果に小数点以下1桁を与えます。 DecimalFormatを使って2桁に変換しようとしました。私は私のコードを実行すると、私はエラー "文字列をdoubleに変換することはできません" 取得していますDisplayFood.java小数点第2位のデータを取得する
からDisplayFood.java
Connection connection = null;
Statement statement = null;
ResultSet resultset = null;
DecimalFormat df = new DecimalFormat("#.00");
String query = "SELECT * FROM food";
statement = connection.createStatement();
resultset = statement.executeQuery(query);
while(resultset.next())
{
FoodRecord foodmenu = new FoodRecord();
foodmenu.setItemName(resultset.getString("itemName"));
foodmenu.setPrice(df.format(resultset.getDouble("price")));
foodmenu.setRestaurant(resultset.getString("restaurant"));
food.add(foodmenu);
}
FoodRecord.java
public class FoodRecord {
private String itemName;
private double price;
private String restaurant;
public FoodRecord() {
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getRestaurant() {
return restaurant;
}
public void setRestaurant(String restaurant) {
this.restaurant = restaurant;
}
}
これはすべて間違っています。データベースの金額は、DOUBLEではなくDECIMALとして保存する必要があります。小数点以下2桁の「二重」というものはありません。 Javaコードでは 'BigDecimal'を使うべきです。 – EJP
@ルーファン - あなたを助けているユーザーに多大な貢献をしたい。それがこのサイトの仕組みです。 –