【发布时间】:2017-09-01 23:06:47
【问题描述】:
有人可以帮我解决我遇到的这个问题吗?我正在尝试从文本视图中获取一个数字并将其存储到一个 double 中以进行计算。有人可以帮我解决我哪里出错了吗?
@Override
protected void onStart() {
super.onStart();
mRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
total += Float.parseFloat((String) snapshot.child("totalCost").getValue());
totalNew.setText(String.valueOf(total).toString().trim());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
mnewRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Long role = (Long) dataSnapshot.child("barberPercentage").getValue();
percentage.setText(String.valueOf(role));
num1 = Double.parseDouble(totalNew.getText().toString().trim());
num2 = Double.parseDouble(percentage.getText().toString());
sum = num1 *(num2/100);
wage.setText(Double.toString(sum));
我收到了一个错误,我尝试了很多方法将 float 更改为 double ,反之亦然,但还没有工作。
java.lang.NumberFormatException: For input string: "Number"
at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)
at java.lang.Double.parseDouble(Double.java:547)
at com.starcutz.employer.AdminIndividualBarberWageActivity$2.onDataChange(AdminIndividualBarberWageActivity.java:90)
at com.google.android.gms.internal.zzbpx.zza(Unknown Source)
at com.google.android.gms.internal.zzbqx.zzZS(Unknown Source)
at com.google.android.gms.internal.zzbra$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
我该怎么办?当我删除这些值时,会填充 totalNew Textview 和百分比 Textview。
num1 = Double.parseDouble(totalNew.getText().toString().trim()); num2 = Double.parseDouble(percentage.getText().toString()); sum = num1 *(num2/100); wage.setText(Double.toString(sum));
【问题讨论】:
-
崩溃在哪一行?
-
这一行在这里 num1 = Double.parseDouble(totalNew.getText().toString().trim());
-
从错误来看,您似乎正在尝试转换字符串“Number”。所以看起来你的输入不正确。
-
我该怎么办?当我删除这些值时,会填充 totalNew Textview 和百分比 Textview。 (num1 = Double.parseDouble(totalNew.getText().toString().trim()); num2 = Double.parseDouble(percentage.getText().toString()); sum = num1 *(num2/100); 工资.setText(Double.toString(sum));
-
不看其余代码很难说,但是,您需要弄清楚为什么您传递的字符串是单词“Number”
标签: android string floating-point firebase-realtime-database double