如何在Android Studio中将十进制数分成两个TextView

时间:2018-10-06 21:07:46

标签: java android-studio

我正在从事这个android应用程序开发项目。我想将2.91这样的十进制数字吐到两个TextViews中,每个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);
        }
    });
}
}

Activity_test.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" />

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow。
如果我理解正确,您的具体问题是要将输入双精度数分为十进制和整数部分。
您可以通过以下方式完成它:
.git/

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

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]表示非十进制数字。因此,您可能需要注意这种特殊情况。

希望这会有所帮助