读取 GUI 文本字段上的 double/float 值
Reading a double/float value on GUI text field
我正在尝试在 NetBeans 上构建一个 GUI 来计算一组值的平均值。目前它适用于整数值,但是当我尝试将小数值输入文本字段时,它只读取小数点之前的部分,然后再移动到数组中的下一个值(例如,如果我输入 1.4, 2.5, 3.6
它将其读取为 1, 2, 3
并将平均值计算为 2
而不是 2.5
)
如何让计算机注册整个值?
private void getMeanButtonActionPerformed(java.awt.event.ActionEvent evt) {
String[] stringValues = valuesTextField.getText().split(",");
double[] values = new double[stringValues.length];
for(int i = 0; i < stringValues.length; i++)
{
values[i] = Double.parseDouble(stringValues[i]);
}
int sum = 0;
for (int i = 0; i < values.length; i++)
{
sum += values[i];
}
double mean = 0;
mean = (double)sum / (double)values.length;
JOptionPane.showMessageDialog(null, mean);
}
顺便说一下,我已经检查了 stringValues 数组,那里一切正常——整个值都已注册。解析中似乎出了点问题。
问题是您将总和定义为 int 而不是 double
...
double sum;
for (int i = 0; i < values.length; i++)
{
sum += values[i];
}
我正在尝试在 NetBeans 上构建一个 GUI 来计算一组值的平均值。目前它适用于整数值,但是当我尝试将小数值输入文本字段时,它只读取小数点之前的部分,然后再移动到数组中的下一个值(例如,如果我输入 1.4, 2.5, 3.6
它将其读取为 1, 2, 3
并将平均值计算为 2
而不是 2.5
)
如何让计算机注册整个值?
private void getMeanButtonActionPerformed(java.awt.event.ActionEvent evt) {
String[] stringValues = valuesTextField.getText().split(",");
double[] values = new double[stringValues.length];
for(int i = 0; i < stringValues.length; i++)
{
values[i] = Double.parseDouble(stringValues[i]);
}
int sum = 0;
for (int i = 0; i < values.length; i++)
{
sum += values[i];
}
double mean = 0;
mean = (double)sum / (double)values.length;
JOptionPane.showMessageDialog(null, mean);
}
顺便说一下,我已经检查了 stringValues 数组,那里一切正常——整个值都已注册。解析中似乎出了点问题。
问题是您将总和定义为 int 而不是 double
...
double sum;
for (int i = 0; i < values.length; i++)
{
sum += values[i];
}