【问题标题】:How to convert string with $ sing in it to int如何将带有$ sing的字符串转换为int
【发布时间】:2017-03-16 12:06:08
【问题描述】:

我有一个字符串“$1,076.00”,我想将它们转换为 int, 我捕获了一些价值 $1,076.00 并保存在名为 originalAmount 的字符串中, 并尝试了 int editor = Integer.parseInt(originalAmount);它给了我错误 java.lang.NumberFormatException: For input string: "$1,076.00"

谁能帮忙?

【问题讨论】:

  • 去掉不需要的部分,然后将字符串解析成double
  • 你有一个非数字表达式。您应该从表达式中删除 $,并且由于您操作双精度值,因此您应该将字符串解析为双精度值。
  • 如果金额是$1,122.33,那么输出应该是什么,因为int 将无法存储.33
  • @Pavneet_Singh 我只发送 int 值来输入,默认情况下它会给出 $ 所以当我获得值并保存在字符串中时,它总是会返回 .00
  • 试试这个int d= Integer.valueOf("$1,076.00".replaceAll("\\.0+|[^\\d]+", ""));

标签: java selenium automation


【解决方案1】:

您需要删除不需要的部分($ 符号),然后仔细解析字符串以加倍,因为小数部分取决于语言环境

String pay = "$1,076.00";
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse(pay.replace("$", ""));
double result = number.doubleValue();
System.out.println(result);

【讨论】:

    【解决方案2】:
    string sourceString = "$1,076.00";
    sourceString.substring(1, sourceString.length() - 1)
    int foo = Integer.parseInt(sourceString);
    

    【讨论】:

      【解决方案3】:

      试试这个:

       String amount = "$1,076,.00";
       String formatted = amount.replace("$", ""); // remove "$" sign
       formatted = formatted.replace(",", ""); // remove "," signs from number
      
       double amountDouble = Double.parseDouble(formatted); // convert to double
       int amountInt = (int)amountDouble; // convert double value to int
       System.out.println(amountInt); // prints out 1076
      

      【讨论】:

        【解决方案4】:
        String originalAmount="$1076.00";
        String amount = originalAmount.replace($,"");
        int edited = Integer.parseInt(amount);
        

        【讨论】:

          【解决方案5】:

          谢谢大家的回答对我帮助很大 我想出了

          originalAmount = originalAmount.substring(1);

              if (originalAmount.contains("$")) {
                  originalAmount = originalAmount.replace("$", "");
              }
          
              newOriginalAmt = Double.parseDouble(originalAmount);
              System.out.println(newOriginalAmt);
          

          请告诉我你的想法

          【讨论】:

            猜你喜欢
            • 2017-12-20
            • 2023-02-15
            • 1970-01-01
            • 2015-11-12
            • 2018-05-08
            • 1970-01-01
            • 1970-01-01
            • 2022-06-27
            相关资源
            最近更新 更多