我正在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 ......有任何帮助吗?
答案 0 :(得分:4)
这与double
变量具有有限位数的事实有关。这就像说1/3 = 0.33333333
时真的应该永远等于0.33333333...
!