我正在从事这个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" />
答案 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]
表示非十进制数字。因此,您可能需要注意这种特殊情况。
希望这会有所帮助