java-让 EditText 只显示两位小数

问题描述

让 EditText 只显示两位小数

我想在EditText 中只显示两位小数。我想在edit text中显示currency,但是想限制数在小数点后两位。

我不想用正则表达式这个方法。我查找的资料说java支持一些internal library函数能实现这个功能。请大家帮忙给点建议。

amount.setRawInputType(Configuration.KEYBOARD_12KEY);
         amount.addTextChangedListener(new TextWatcher()
         {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub
                DecimalFormat formatVal = new DecimalFormat("##.##");
                String formatted = formatVal.format(s);
                amount.setText(formatted);
            }

解决方案

你可以简单地使用 DecimalFormat

DecimalFormat format = new DecimalFormat("##.##");
String formatted = format.format(22.123);
editText.setText(formatted);

就会在 EditText 获得 22.12的结果。

解决方案二:

  EditText.addTextChangedListener(new TextWatcher()
  {
      public void afterTextChanged(Editable edt)
      {
          String temp = edt.toString();
          int posDot = temp.indexOf(".");
          if (posDot <= 0) return;
          if (temp.length() - posDot - 1 > 2)
          {
              edt.delete(posDot + 3, posDot + 4);
          }
      }

      public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}

      public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
  });

以前看到过的例子

时间: 2024-10-02 09:00:20

java-让 EditText 只显示两位小数的相关文章

JS格式化数字金额用逗号隔开保留两位小数_javascript技巧

例如: 12345格式化为12,345.00 12345.6格式化为12,345.60 12345.67格式化为 12,345.67 只留两位小数. 回来后写了个格式化函数.可以控制小数位数,自动四舍五入. 代码如下: 复制代码 代码如下: function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, ""

java使double保留两位小数的多方法 java保留两位小数_java

复制代码 代码如下: mport java.text.DecimalFormat;   DecimalFormat    df   = new DecimalFormat("######0.00");   double d1 = 3.23456  double d2 = 0.0;double d3 = 2.0;df.format(d1); df.format(d2); df.format(d3); 3个结果分别为: 复制代码 代码如下: 3.230.00 2.00 java保留两位小数

decimal 型的数字,有如果有小数,只保留2位小数,没有小数,就只显示整数部分?

问题描述 decimal型的数字,有如果有小数,只保留2位小数,没有小数,就只显示整数部分,不显示小数部分?用vb.net写谢谢大家 解决方案 解决方案二:可以强制转化成整数和原来数值比较不等的说明是小数,ToString("0.00")等于说明是整数,直接取刚才的整数解决方案三:vb不会,C#的:Math.Round(1.234,2);

java 保留两位小数的几种方法_java

1.代码: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class format { double f = 111231.5585; public void m1() { BigDecimal bg = new BigDecimal(f); double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP)

java四舍五入float保留两位小数

例子1 float   f   =  34.237323f;  BigDecimal   b  =   new BigDecimal(f);  float   f1   =  b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();  System.out.println(f1); 方法2: float   f   =   34.232323; BigDecimal   b   =   new   BigDecimal(f); float   f

JS保留两位小数

    JS保留两位小数       对于一些小数点后有多位的浮点数,我们可能只需要保留2位,但js没有提供这样直接的函数,所以我们得自己写函数实现这个功能,代码如下: function changeTwoDecimal(x) {    var f_x = parseFloat(x);    if (isNaN(f_x))    {       alert('function:changeTwoDecimal->parameter error');       return false;    

巧用WPS移动版组合函数四舍五入保留两位小数

平时用WPS移动版编辑表格时发现,在统计数据过程中,很多情况下要将数字四舍五入到小数点后两位小数.利用"单元格格式设置"则不能实现四舍五入.在WPS移动版中,要将数字自动四舍五入,需要使用Round 函数,其公式为:Round (number, num_digits),即指返回按指定位数进行四舍五入的数值.一起来学习吧. 阿mo打开一个利润统计表,四个部门的产品销售利润已经列举在内.下面向大家介绍如何借助WPS移动版得出平均利润,并且各平均利润值要自动四舍五入到两位小数. 其实,阿mo

class-现有Double类型的数据,如何转换为保留两位小数的数,返回值的类型仍然是Double类型的。

问题描述 现有Double类型的数据,如何转换为保留两位小数的数,返回值的类型仍然是Double类型的. 各位大虾,现有Double类型的数据,如何转换为保留两位小数的数,返回值的类型仍然是Double类型的,而不是字符串类型. 解决方案 double a=1.2345; a=int(a*100)/100.0; 解决方案二: 在java里面没有四舍五入,c,c++才有. java a=int(a*100+0.5)/100.0; 这种很快捷 C 直接输出system.out.printf("%2.

js小数计算小数点后显示多位小数的实现方法_javascript技巧

首先写一个demo 重现问题,我使用的是一个js在线测试环境[打开] 改写displaynum()函数 function displaynum(){var num = 22.77;alert(num + 10);} 点击Show按钮 结果显示32.769999999996 出现了N多小数. 也并不是所有数字都会出现这种现象, 除了 22.99  2.777 , 好像这几个数字也没什么特殊. 查了一些资料, 一是JS浮点数计算的bug, 另一个是和计算机最终转换成二进制计算有关系, 但是为什么不是