Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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 java数学问题_Java_Android_Math - Fatal编程技术网

Android java数学问题

Android java数学问题,java,android,math,Java,Android,Math,我有以下代码。每当我的应用程序尝试使用带小数的数字时,就会崩溃。 我知道我的最终成绩有问题,但有什么问题 b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String f = et1.getText().toString(); int i = Integer.parseInt(f);

我有以下代码。每当我的应用程序尝试使用带小数的数字时,就会崩溃。 我知道我的最终成绩有问题,但有什么问题

    b1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            String f = et1.getText().toString();
            int i = Integer.parseInt(f);
            String s = et2.getText().toString();
            int j = Integer.parseInt(s);
            String w = et4.getText().toString();
            int q = Integer.parseInt(s);
            int price_gold = 10;

            int fpa = 10;
            int fpol = 10;
            int isot = 10;
            int sint_ker = 10;
            Integer result1 = (i * price_gold) + (j * 1000) + (q * isot);
            result = result1 / 340;

            String res = result.toString();
            et3.setText(res);
        }
    }
您应该使用Float.parseFloat,但要注意空文本,如下所示

String f = et1.getText().toString();
if (!TextUtils.isEmpty(f)) {
    Float i = Float.parseFloat(f);
}

如果您想要整数输出作为您的答案,那么将除result1之外的所有值都作为双倍值,这要容易得多 检查以下内容:

b1.setOnClickListener(new OnClickListener() {

    @Override

    public void onClick(View v) {

        String f = et1.getText().toString();

        double i = Double.parseDouble(f);

        String s = et2.getText().toString();

        double j = Double.parseDouble(s);

        String w = et4.getText().toString();

        double q = Double.parseDouble(s);

        double price_gold = 10;


        double fpa = 10;

        double fpol = 10;

        double isot = 10;

        double sint_ker = 10;

        Integer result1 = ((int)i * price_gold) + ((int)j * 1000) + ((int)q * isot);

        result = result1 / 340;

        String res = String.valueOf(result);

        et3.setText(res);
    }

然后,这段代码将给出您要查找的整数值,简单:

您正试图解析一个十进制数并将其分配给int.Post logcat输出,因为我的应用程序崩溃并不意味着什么。我必须转换什么才能将其作为十进制数传递?使用Double而不是Integer?Double.parseDouble转换为Double原语请回答这是否适用于您,如果不适用,请告诉我此处的错误,谢谢。只保留了小数结果,只更改了双结果1=i*price_gold+j*1000+q*isot;很好的一个,快乐的编码: