我目前正在开发适用于Android的应用。在此应用中,我需要将计算得出的数字转换为百分比。原始数字(tipTotal)是正确计算的,但是当我尝试通过除以100(tipPercentage)转换为十进制时,tipPercentage始终为0.0。

我已经确认tipTotal是正确的并且是我期望的。

public void onClick(View view) {
            int tipTotal = 0;
            float totalBill = 0;
            float tipPercentage = 0;
            String time, attitude, refills, clearing, accuracy, bill;

            time = timeSpinner.getSelectedItem().toString();
            attitude = attitudeSpinner.getSelectedItem().toString();
            refills = refillsSpinner.getSelectedItem().toString();
            clearing = clearingSpinner.getSelectedItem().toString();
            accuracy = accuracySpinner.getSelectedItem().toString();
            bill = txtBill.getText().toString();

            tipTotal = Integer.parseInt(time)+Integer.parseInt(attitude)+Integer.parseInt(refills)+Integer.parseInt(clearing)+Integer.parseInt(accuracy);

            tipPercentage = tipTotal / 100;

            Context context = getApplicationContext();
            int duration = Toast.LENGTH_LONG;
            Toast toast = Toast.makeText(context, String.valueOf(tipPercentage), duration);
            toast.show();

        }


谢谢你的帮助!

最佳答案

尝试这个:

tipPercentage = ((float)tipTotal)/ 100f;


问题可能是tipTotal / 100正在执行整数除法...没有小数部分且小于1。这就是整数除法的工作原理,例如:10/6 = 1。另一方面,10f/6f=1.6666

09-05 13:49