当前位置: 首页 > 面试题库 >

限制Android EditText中的小数位数

秋阳旭
2023-03-14
问题内容

我正在尝试编写一个可帮助你管理财务的应用程序。我正在使用一个EditText字段,用户可以在其中指定金额。

我将设置inputTypenumberDecimal可以正常使用,除了允许人们输入数字(例如,123.122这对金钱而言并不完美)之外,它设置得很好。

有没有办法将小数点后的字符数限制为两个?


问题答案:

这是一个示例InputFilter,它仅允许在小数点前最多4位,在小数点后最多1位。

价值观是允许的EditText:555.2,555,0.2

价值观是的EditText块:55555.2,055.2,555.42

        InputFilter filter = new InputFilter() {
        final int maxDigitsBeforeDecimalPoint=4;
        final int maxDigitsAfterDecimalPoint=1;

        @Override
        public CharSequence filter(CharSequence source, int start, int end,
                Spanned dest, int dstart, int dend) {
                StringBuilder builder = new StringBuilder(dest);
                builder.replace(dstart, dend, source
                        .subSequence(start, end).toString());
                if (!builder.toString().matches(
                        "(([1-9]{1})([0-9]{0,"+(maxDigitsBeforeDecimalPoint-1)+"})?)?(\\.[0-9]{0,"+maxDigitsAfterDecimalPoint+"})?"

                        )) {
                    if(source.length()==0)
                        return dest.subSequence(dstart, dend);
                    return "";
                }

            return null;

        }
    };

    mEdittext.setFilters(new InputFilter[] { filter });


 类似资料:
  • 我面临以下问题/行为: 这是什么导致的?大数/浮动的小数位有限制吗? 它是否与IEEE 754标准相关(如本文所述:浮点数学是否被破坏?)? 最后——我该如何解决这个问题?

  • 问题内容: 我想四舍五入为。 该功能无法按我预期的方式工作。 问题答案: 你遇到了浮点数的老问题,不是所有的数字都能精确地表示。命令行只是向你显示内存中的完整浮点形式。 对于浮点表示,舍入的版本是相同的数字。由于计算机是二进制的,它们将浮点数存储为整数,然后除以2的幂,因此将以类似于的方式表示。 双精度数字有53位(16位)的精度,而常规浮点数有24位(8位)的精度。Python中的浮点类型使用双

  • 问题内容: 在HighChart中,我需要针对x和y轴绘制一系列数据。HighChart希望数据为json格式。即[[x,y],[x,y]……[x,y]]。其中x和y是时间(1392345000-Unix纪元格式)和值(49.322)。因此,我正在进行ajax调用以获取数据,并成功将json返回的数据渲染为highchart。在大多数情况下,即,如果data([x,y])的计数低于87500行,则

  • 我正在使用在我的客户端应用程序中执行以及 最大数据包大小限制也存在于中,即?但是我可以使用中的发送大于最大数据包大小的数据块 这是怎么运作的?这是因为是基于流的,负责在较低层创建数据包吗?有什么方法可以增加UDP中的最大数据包大小吗? 当我在客户端读取时,我从服务器端发送的UDP数据包的一些字节是否可能丢失?如果是,那么有没有办法只检测UDP客户端的损失?

  • 问题内容: 有一种通用的方法,可以使用位掩码将多个值存储在一个变量中。例如,如果用户对某项具有读,写和执行特权,则可以通过说出该特权并将其转换为一个数字,然后将它们加在一起得到7。 我在几种Web应用程序中使用了这种技术,通常将变量存储到一个字段中,并根据不同值的数量为它提供MEDIUMINT或其他类型。 我感兴趣的是,这样存储的值数量是否有实际限制?例如,如果数字超过64,则不能再使用(64位)

  • 问题内容: 我正在尝试使用jQuery Ajax将页面中的数据数组发送到MVC Action。这是我的jQuery代码: 让我解释一下。我有一个动态生成的HTML表,我需要将此数据存储到数据库中。在jQuery中,我遍历表有一个循环,我将数组中每一行的数据存储起来。然后,我使用Ajax将这些数据传递到MVC Action中。 这是我的问题开始的地方…我已经意识到有时会按预期进行,但是有时我会从Aj