【问题标题】:how can I input decimals in to input field - android如何在输入字段中输入小数 - android
【发布时间】:2013-10-19 00:46:42
【问题描述】:

我刚开始玩 android 应用程序。 我有一个文本字段来输入数字,但不知何故我只能输入没有小数的常规整数。

知道我能做些什么来输入小数吗?

这就是我所拥有的......

public void onClick(View arg0) {
          EditText edit = (EditText)findViewById(R.id.editText1);
          TextView text = (TextView)findViewById(R.id.textView1);
          String input = edit.getText().toString();
          float num = 0;
          try {
             num = Integer.parseInt(input);
          } catch (NumberFormatException e) {
             input = "0";
          }

          double newNum = num * 1.12;
          DecimalFormat df = new DecimalFormat("###.##");
          text.setText(input + " * 12% = " + df.format(newNum));

【问题讨论】:

  • 使用Double.parseDouble(input) 代替Integer.parseInt(input) ?
  • 将您的 EditText xml 更改为 android:inputType="numberDecimal"
  • 我该如何给你们竖起大拇指? ^_^ 谢谢

标签: java android decimal


【解决方案1】:

将以下属性添加到 xml 中的 EditText

android:inputType="numberDecimal"

这将通知键盘输入小数。

【讨论】:

    【解决方案2】:

    如果你想获得十进制数字键盘,你应该在 EditText xml 文件中添加 inputType 和值 numberDecimal

    android:inputType="numberDecimal"
    

    如果你也想使用逗号和点,你应该在EditText xml 中添加digits

    android:digits="0123456789.,"
    

    当你在 Java 中得到这个结果时,不要忘记用逗号替换点,因为 Double 和 Float 只能解析点分隔的文本:

    String test = "12,34";
    String changed = test.replace(",",".")
    float value = Float.parseFloat(changed)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 2015-03-31
      • 2020-07-05
      • 1970-01-01
      • 2023-01-17
      相关资源
      最近更新 更多