Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android如何将十进制转换为int(将要计算),然后再转换为十进制(结果)_Android - Fatal编程技术网

android如何将十进制转换为int(将要计算),然后再转换为十进制(结果)

android如何将十进制转换为int(将要计算),然后再转换为十进制(结果),android,Android,我正在开发一个关于pmt的应用程序。这里我有一个函数,它可以将edittext(仅数字)中的输入转换为十进制(要求edittext以某种方式使来自用户的给定输入看起来像一种货币,例如用户在edittext中键入三个数字“987”,它将显示“987”没有变化,但当用户键入更多时,一个或多个字符表示“987654”将是“987654”) 但是,此函数将使来自该edittext的输入无法计算(我还是android(eclipse)的新手,我有另一个函数将从同一edittext获取输入并自动计算(无需单

我正在开发一个关于pmt的应用程序。这里我有一个函数,它可以将edittext(仅数字)中的输入转换为十进制(要求edittext以某种方式使来自用户的给定输入看起来像一种货币,例如用户在edittext中键入三个数字“987”,它将显示“987”没有变化,但当用户键入更多时,一个或多个字符表示“987654”将是“987654”)

但是,此函数将使来自该edittext的输入无法计算(我还是android(eclipse)的新手,我有另一个函数将从同一edittext获取输入并自动计算(无需单击按钮或执行某些操作),然后在同一布局的textview上显示结果) 我想知道,如果我们把它转换成int(计算),然后再转换回十进制。或者以某种方式存储要计算的临时数据,在不更改显示的情况下,edittext上的显示仍然是十进制格式

我的makedecimal函数:

public void myEditTextAndroidOnClick(View v)
                {
                                MyEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

                                DigitsKeyListener dkl = new DigitsKeyListener(true,true);
                                MyEditText.setKeyListener(dkl);

                                MyEditText.addTextChangedListener(new TextWatcher(){
                        private String current = "";

                        @Override
                        public void afterTextChanged(Editable s) {
                                String userInput=s.toString();

                                if(!userInput.toString().equals(current)){
                                                MyEditText.removeTextChangedListener(this);

                                                String cleanString = userInput.replaceAll("[,]", "");

                                                if(cleanString.length()>0){
                                                                double parsed = Double.parseDouble(cleanString);                                                
                                                                String formated = DecimalFormat.getNumberInstance().format(parsed);

                                                                current = formated;
                                                                MyEditText.setText(formated);
                                                                MyEditText.setSelection(formated.length());
                                                }else{
                                                                MyEditText.setText(cleanString);
                                                                MyEditText.setSelection(cleanString.length());
                                                }

                                                MyEditText.addTextChangedListener(this);
                    }
                        }
                        @Override
                        public void beforeTextChanged(CharSequence s, int start,
                                int count, int after) {
                        }
                        @Override
                        public void onTextChanged(CharSequence s, int start,
                                int before, int count) {
                        }
                    });                                                           
               }
计算器

MyEditText.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {

                    String text1 = MyEditText.getText().toString();
                    if (text1.length() != 0) {
                        int input1 = Integer.valueOf(text1);

                        int input2 = Integer.valueOf(s.toString());

                        int output = (input1 * input2) / 100;
                        MyTextViewThatWillDisplayTheResult.setText(output + "");
                    }

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                }

                @Override
                public void afterTextChanged(Editable s) {
                }
            });
            }
text2来自同一版面上的另一个edittext。我在想,这个函数是否可以合并到同一个函数中,或者以某种方式转换为int(实际上我使用long),然后在MyTextView上转换回十进制,以显示结果。但我不知道怎么做,我被困在这里了


提前感谢

在edittext中显示数据时,请使用逗号,计算时请删除逗号,然后进行计算

使用替换:

x=x.replaceAll(',', "");
x=x.replaceAll(',', "");