【问题标题】:getting a string from text view into a double in android将文本视图中的字符串转换为android中的double
【发布时间】: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


【解决方案1】:

试试这个

num1 = Double.parseDouble(totalNew.getText().toString());

或者

num1 = Double.valueOf(totalNew.getText().toString());

【讨论】:

  • 还是同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2018-07-13
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多