当前位置: 首页 > 知识库问答 >
问题:

Java将字符串转换为双精度[重复]

贺劲
2023-03-14

我正在创建一个基本的GUI,它接受用户输入的金额,并用预先存在的金额减去它。然而,它不会让我运行下面的一个,因为我得到了一个字符串不能转换为double的错误。这里使用parseInt方法不起作用,因为im使用getText方法。

String message = txtaMessage.getText();
    String transaction1 = txtfAmountTransfer.getText();
    String reciever = txtfTransferTo.getText();
    
    lblOutputTransferInfo.setText("Your Amount of "+transaction1+" has been sent to "+reciever+" .");
    lblOutputTransferMsg.setText("With a Message: "+ message);

   double balance = 5123.84;
   
   String newBalance = balance - transaction1;//this will not work but the concept I need 
   
   lblSavingsBalance.setText(newBalance);

共有2个答案

西门庆
2023-03-14

如果getText返回下面的字符串,则代码将起作用。

        String message = txtaMessage.getText();
    String transaction1 = txtfAmountTransfer.getText();

    String reciever = txtfTransferTo.getText();


    lblOutputTransferInfo.setText("Your Amount of "+transaction1+" has been sent to "+reciever+" .");

    lblOutputTransferMsg.setText("With a Message: "+ message);

    double balance = 5123.84;

    balance = balance - Double.parseDouble(transaction1);//this will not work but the concept I need

    lblSavingsBalance.setText(String.valueOf(balance));

如果您使用的是android,

(假设txtaMessage、transaction1、Receiver是TextView对象或EditText对象)

txtaMessage.getText(); //This won't return a String. This will return a CharSequence.

你必须把它转换成字符串。所以正确的方法是,

String message = txtaMessage.getText().toString();

对所有编辑文本和文本视图执行此操作。

那么事务1应该转换为Double

Double.parseDouble(transaction1);

之后,可以从平衡中减去transtraction1并将其指定给原始平衡。

balance = balance - Double.parseDouble(transaction1)

android代码的完整版本如下所示。

        String message = txtaMessage.getText().toString();
    String transaction1 = txtfAmountTransfer.getText().toString();

    String reciever = txtfTransferTo.getText().toString();


    lblOutputTransferInfo.setText("Your Amount of "+transaction1+" has been sent to "+reciever+" .");

    lblOutputTransferMsg.setText("With a Message: "+ message);

    double balance = 5123.84;
    
    balance = (balance - Double.parseDouble(transaction1));//this will not work but the concept I need
        lblSavingsBalance.setText(String.valueOf(balance));

   

如果transaction1值不是数字,则会发生异常。所以用try/catch包装它是个好主意。

            try {
        balance = (balance - Double.parseDouble(transaction1));//this will not work but the concept I need
        lblSavingsBalance.setText(String.valueOf(balance));
    } catch (NumberFormatException e) {
        //Send error message like showing a toast
        e.printStackTrace();
    }
荆学民
2023-03-14

它不起作用,因为这里transation1是一个字符串,而balance是double。在java中,我们没有从double中减去string的方法。因此,首先,您需要将transaction1转换为double。我建议您使用双倍新天平。parseDouble(Transaction1) 然后<代码>LBL节省平衡。setText(newBalance.toString()) 将双值转换为字符串

希望一切顺利。。。

 类似资料:
  • 我还是一名学生,刚开始学习java编程语言,我只是想问一下如何将函数main中的参数从字符串转换为double,就像将字符串转换为整数一样。pasreInt(arg)

  • 问题内容: 我有一个双,其值是10,000,000.00(千万)。我必须将其转换为。当使用该方法时,我会得到 “ 1.0E7”,它遵循规范是正确的。不幸的是,我需要“ 10,000,000.00”(或等价的语言,具体取决于语言环境)。 如何做到这一点? 问题答案: 尝试之一 NumberFormat http://java.sun.com/javase/6/docs/api/java/text/N

  • 我需要将字符串值转换为带点的双精度值。下面是简单的代码 当我给出10000或100000这样的值时,它是有效的。帮助我克服这个问题。

  • 问题内容: 这是Xcode 7.3.1 Playground中的简单代码: 输出令人惊讶: 另外,给出: 对这个家伙有什么想法或理由吗?任何对此的引用将不胜感激。 另外,我该如何将“ 8.7”转换为Double(或Float)的8.7? 编辑 迅速地: (str作为NSString).doubleValue返回8.7 现在,可以。但是,我的问题仍然没有得到完整的答案。我们找到了一个替代方法,但是为

  • 我只是有一个关于在JAVA中添加一些货币($)的问题,我使用NumberFormat.getMONcyInstance();以“$”获取我的输出。我的程序是输入一些钱(字符串格式),例如程序只接受(100美元、50美元、20美元...等等),所以我使用了这段代码: 如何获取输入(100.00、50.00…)以从总价中减去它们。。例如我想要(100.00-12.00)(12.00是总价) 任何帮助都

  • 问题内容: 甲 字符串 一个的表示 双 写入和从由文件读 C# 应用。 C#应用程序使用以下片段将双精度型转换为字符串: C#应用程序使用以下片段将字符串转换为双精度型 如果要在 Java 应用程序中写入和读取同一文件,您将如何转换类型而不丢失数据? 问题答案: 我相信,只要使用就可以并且不会丢失数据。特别是从docs中获取: m或a的小数部分必须打印多少个数字?必须至少有一位数字来表示小数部分,