重複の可能性:
表現の浮動小数点エラー?
したがって、このコードを実行して、ファイルから浮動小数点文字列値を読み取り、値を配列に格納しています。プログラムがファイルから「0.333」を読み取ると、新しい float 値が作成されますが、値は 0.33329999446868896 に変換されます。どうしてこれなの?そして、どうすればこの問題を解決できますか? 行列は次のように宣言されます。
this.matrix = new double[this.getRow()][this.getCol()];
this.bMatrix = new double[this.getRow()];
try {
// make sure no blank lines at the end of the file.
for (int i = 0; (strLine = reader.readLine()) != null; i++) {
System.out.println("Line from file #" + i + " " + strLine);
String[] columns = strLine.trim().split("\\s+");
for (int j = 0; j < columns.length; j++) {
if (j < (columns.length - 1)) {
//A-matrix
this.matrix[i][j] = new Float(columns[j]).floatValue();
System.out.println("Element added to A-matrix: " + columns[j]);
} else {
// B-matrix
bMatrix[i] = new Float(columns[j]).floatValue();
System.out.println("Element added to B-matrix: " + columns[j]);
}
}
}
showMatrix();
} catch (IOException | NumberFormatException e) {
reader.close();
}
}
ご協力ありがとうございます。