首頁> Java> 主體

如何將小數點限制為每個數字+一位

PHPz
發布: 2024-02-22 12:49:20
轉載
1042 人瀏覽過

php小编鱼仔带来的Java问答:如何实现将小数点限制为每个数字后只能保留一位?这是许多Java开发者在处理数字格式化时经常遇到的问题。在实际项目中,对小数点的控制是非常重要的,尤其是涉及金额、货币等需要精确计算的场景。接下来,我们将通过简单易懂的例子,详细介绍在Java中如何实现这一需求。

问题内容

我正在 java/android studio 中编写一个计算器,我遇到了每个数字只需要一位小数点的问题。类似于 1.2,而不是 1.2.3。允许用户在计算器中使用小数或自然数,但是,一旦用户按下点(“.”)符号,就无法对该特定数字再次重复。

我对其进行编码以显示错误(这不起作用),并且用户不应该在数字的第一个小数点之后添加另一个小数点,而不是显示错误。它需要适用于 1.1 + 1.1,但不适用于 1.1.1。或 1.1。等等

我尝试将此作为代码的一部分,但它不起作用。就像,它不断禁用我的等于按钮,即使我已经在第一次警告后立即编写了它。

Pattern p; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); p = Pattern.compile("(\\d*(\\.\\d*)?([+\\-*%\\]|$))*"); UserInput = findViewById(R.id.ed_calculation_input); UserInput.setShowSoftInputOnFocus(false); tvCalculationOutput = findViewById(R.id.tv_calculation_output); edUserInput.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { Matcher m = p.matcher(edUserInput.getText().toString()); if(!m.matches()) { edUserInput.setError("Enter valid no"); btnEqual.setEnabled(false); } else { btnEqual.setEnabled(true); } } @Override public void afterTextChanged(Editable s) { } });
登入後複製

解决方法

这个问题的解决方案相当简单。您已选择edittext作为数字的输入,不是吗?然后您所要做的就是添加行

登入後複製

在 xml 布局文件中,防止数字有多个小数点(或字母或其他符号)。

以上是如何將小數點限制為每個數字+一位的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!