为什么我的Java百分比略有错误?

时间:2016-03-09 07:01:34

标签: java android math

我正在Android Studio中编写一个简单的百分比计算器Android应用程序。这是我的诗篇:

    resultView = (TextView) findViewById(R.id.ResultView);
    percentageText = (EditText) findViewById(R.id.PercentageInput);
    numberText = (EditText) findViewById(R.id.NumberInput);

    Button calcButton = (Button) findViewById(R.id.Calculate_btn);
    calcButton.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view)
         {
             if(percentageText.length() != 0 && numberText.length() != 0)
             {
                 float percentage = Float.parseFloat(percentageText.getText().toString()) / 100;
                 float result = percentage * Float.parseFloat(numberText.getText().toString());
                 resultView.setText(Float.toString(result));
             }
             else if(percentageText.length() == 0 && numberText.length() == 0)
             {
                 resultView.setText("Don't be dumb...");
             }
         }
      });

所以看起来一切正常。简单的百分比总是正确的。 50%100 = 50,25%50 = 12.5 ......但是我得到3和6. 3%10 = 0.29999998 ......不应该是.3?和60%100 = 60.000004 ......有任何帮助吗?

1 个答案:

答案 0 :(得分:4)

这与double变量具有有限位数的事实有关。这就像说1/3 = 0.33333333时真的应该永远等于0.33333333...

了解Floating points and Double precision