java android-studio double fraction仅显示.0

7uzetpgm  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(128)

在我的计算系统中的问题是,双精度的输出分数总是显示0,像77.3在我的计算结果,但在程序输出中显示77.0
这是我的程序代码

public void  avgcal()
{
    double avg = .0,tot,wg1,wg2,wg3,wg4,dq1,dq2,dq3,dq4,st1,st2,st3,st4,intot1,intot2,intot3,intot4;

    DecimalFormat precision = new DecimalFormat(".2");

    //Subject grades calculator
    wg1 = Double.parseDouble(ed2.getText().toString());
    dq1 = Double.parseDouble(ed3.getText().toString());
    st1 = Double.parseDouble(ed4.getText().toString());

    wg2 = Double.parseDouble(ed8.getText().toString());
    dq2 = Double.parseDouble(ed9.getText().toString());
    st2 = Double.parseDouble(ed10.getText().toString());

    wg3 = Double.parseDouble(ed11.getText().toString());
    dq3 = Double.parseDouble(ed12.getText().toString());
    st3 = Double.parseDouble(ed13.getText().toString());

    wg4 = Double.parseDouble(ed19.getText().toString());
    dq4 = Double.parseDouble(ed20.getText().toString());
    st4 = Double.parseDouble(ed21.getText().toString());

    intot1 = st1 / dq1 * wg1;
    intot2 = st2 / dq2 * wg2;
    intot3 = st3 / dq3 * wg3;
    intot4 = st4 / dq4 * wg4;


    //SUM OF ALL DATA
    tot = intot1 + intot2 + intot3 + intot4;

    ed5.setText(precision.format(tot));
}

}

rsaldnfx

rsaldnfx1#

问题出在precision.format(tot)行。DecimalFormat对象已初始化为格式“.2”,这意味着它将数字格式化为两位小数。然而,在ed5.setText(precision.format(tot))行中;,格式化的数字被分配给TextView,该TextView可能具有不同的格式,或者可能将数字舍入到小数点后零位。
要解决这个问题,可以尝试使用String.format方法将数字格式化为两位小数,然后将其作为字符串设置到TextView。
下面是更新后的代码:
public void avgcal(){ double avg = .0,tot,wg1,wg2,wg3,wg4,dq1,dq2,dq3,dq4,st1,st2,st3,st4,intot1,intot2,intot3,intot4;

// Subject grades calculator
wg1 = Double.parseDouble(ed2.getText().toString());
dq1 = Double.parseDouble(ed3.getText().toString());
st1 = Double.parseDouble(ed4.getText().toString());

wg2 = Double.parseDouble(ed8.getText().toString());
dq2 = Double.parseDouble(ed9.getText().toString());
st2 = Double.parseDouble(ed10.getText().toString());

wg3 = Double.parseDouble(ed11.getText().toString());
dq3 = Double.parseDouble(ed12.getText().toString());
st3 = Double.parseDouble(ed13.getText().toString());

wg4 = Double.parseDouble(ed19.getText().toString());
dq4 = Double.parseDouble(ed20.getText().toString());
st4 = Double.parseDouble(ed21.getText().toString());

intot1 = st1 / dq1 * wg1;
intot2 = st2 / dq2 * wg2;
intot3 = st3 / dq3 * wg3;
intot4 = st4 / dq4 * wg4;

// SUM OF ALL DATA
tot = intot1 + intot2 + intot3 + intot4;

// Format the number to two decimal places and set it to the TextView
ed5.setText(String.format("%.2f", tot));

}
此代码应将数字格式设置为两位小数,并将其设置为TextView。

相关问题