Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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
Java 如何在android studio中将十进制数拆分为两个TextView_Java_Android Studio - Fatal编程技术网

Java 如何在android studio中将十进制数拆分为两个TextView

Java 如何在android studio中将十进制数拆分为两个TextView,java,android-studio,Java,Android Studio,我正在从事这个android应用程序开发项目。我想把像2.91这样的十进制数字分成两个TextView,每个TextView都是数字的一部分 像第一个TextView取2,第二个TextView取91,不带小数点 这是我的密码: Test.Java public class Test extends AppCompatActivity { Button btSpilt; EditText Input; TextView wholenumber, points; private double d

我正在从事这个android应用程序开发项目。我想把像2.91这样的十进制数字分成两个
TextView
,每个
TextView
都是数字的一部分 像第一个
TextView
取2,第二个
TextView
取91,不带小数点

这是我的密码:

Test.Java

public class Test extends AppCompatActivity {

Button btSpilt;
EditText Input;
TextView wholenumber, points;
private double d;
private long a, b;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    btSpilt = findViewById(R.id.Test);
    btSpilt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            double d = Input.getText();

            long a = (long) d;
            double f = d - a;

            while (Math.abs((long) f - f) > 0.000001) f *= 10;

            long b = (long) f;

            wholenumber.setText((int) a);
            points.setText((int) b);
        }
    });
}
}
活动测试.xml

<EditText
    android:id="@+id/Input"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:hint="input"
    android:inputType="numberDecimal"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    tools:layout_editor_absoluteY="76dp" />

<Button
    android:id="@+id/btSpilt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Split"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    tools:layout_editor_absoluteY="146dp" />

<TextView
    android:id="@+id/wholenumber"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Whole Number"
    android:textSize="25sp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    tools:layout_editor_absoluteY="244dp" />

<TextView
    android:id="@+id/points"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Points"
    android:textSize="25sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.498"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.55" />


欢迎来到StackOverflow。
如果我理解正确的话,您的具体问题是要将输入的双精度分为十进制和整数部分。
您可以通过以下方式完成:
String[]number=Input.getText().toString().split(“.”)

因此,您可以像这样重写您的方法:

public void onClick(View v) {

    String[] number = Input.getText().toString().split(".");

    wholenumber.setText(number[0]);
    points.setText(number[1]);
}
但是,您会注意到,对于非十进制数字,
number[1]
可能返回
null
。所以你可能需要注意这个特殊的情况


希望这有帮助

欢迎使用SO。在发布问题之前,您必须对自己的部分进行一些研究。:)您可以简单地使用EditText中的文本,然后使用正则表达式拆分字符串。因此,您可以使用
Input.getText().toString().split(“.”
获得一个由两个字符串组成的数组,分别包含这两个数字。您的问题是什么?