【问题标题】:Trouble Converting Value to Decimal JAVA (Android)无法将值转换为十进制 JAVA (Android)
【发布时间】:2011-03-07 14:02:06
【问题描述】:

我目前正在开发一款适用于 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();

        }

感谢您的帮助!

【问题讨论】:

    标签: java android decimal


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

    • 大家好,你们是对的,我犯了一个完全的菜鸟错误!我应该知道的更好。谢谢!
    • 但是如果用户输入“25.6”或“0.256”或“.256”而您希望它是“0.256”怎么办?
    【解决方案2】:

    我将第二个 Cristian 的回复,这几乎可以肯定是因为 tipTotal / 100 是一个整数除法,在你的情况下它似乎返回 int 0 然后类型转换为 float 0.0

    因此解决此问题的一种方法是采纳 Cristian 的建议并强制划分两个花车。

    另一种选择是将tipTotal 声明为float tipTotal = 0;,在这种情况下,除法将按照您的预期进行,因为100 将自动提升为浮动。

    编辑:为了更好地理解,请查看http://mindprod.com/jgloss/division.html

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2014-02-05
      • 2017-11-13
      • 2023-01-16
      • 1970-01-01
      相关资源
      最近更新 更多