【问题标题】:only reading till 1st decimal digit只读到第一个十进制数字
【发布时间】:2012-12-13 13:21:44
【问题描述】:

在我的 android 应用程序中,我有一个 EditText,用户可以在其中输入一个小数,只要用户想要就可以。它可以是 25、54.77、23.7、7.88 等数字。在同一个活动中,我有一个 textView,它将输入读入 EditText 并显示小数点,但只显示第一个小数点。例如如果用户输入:25 应该显示为 25,54.77 显示为 54.7,23.7 显示为 23.7,7.88 显示为 7.8。我怎样才能做到这一点?我尝试使用以下代码,但没有成功:

        NumberFormat df = DecimalFormat.getInstance();
        df.setMinimumFractionDigits(0);
        df.setMaximumFractionDigits(1);

        df.format(EditTextNumber);

【问题讨论】:

    标签: android


    【解决方案1】:

    使用String.format:

    String result = String.format("%.1f", yourdecimalvalue);
    

    你也可以使用DecimalFormat

     NumberFormat formatter = new DecimalFormat("#0.0");
     String result = formatter.format(yourdeciamlvalue);
    

    【讨论】:

      【解决方案2】:

      尝试用 NumberFormat 代替 DecimalFormat:

      NumberFormat nf = NumberFormat.getInstance();
      nf.setMinimumFractionDigits(1);
      nf.setMaximumFractionDigits(1);
      TextView.setText(nf.format(editText.getText()));
      

      【讨论】:

        【解决方案3】:

        如果您通过编辑文本获取输入,那么您可以使用此代码

        String number=input.getText().toString(); //input is ur input edittext
        String output=number;
        int indexOfDecimal=number.lastIndexOf('.');
        if(indexOfDecimal!=-1&&indexOfDecimal<output.length()-1)
            number=output.substring(0, indexOfDecimal+2);  // use number as the output
        

        【讨论】:

          猜你喜欢
          • 2018-09-08
          • 1970-01-01
          • 2013-11-21
          • 1970-01-01
          • 2022-01-22
          • 2019-04-22
          • 2017-10-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多