如何将带有$ sing的字符串转换为int

Posted

技术标签:

【中文标题】如何将带有$ sing的字符串转换为int【英文标题】:How to convert string with $ sing in it to 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]+", "")); 【参考方案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);

请告诉我你的想法

【讨论】:

以上是关于如何将带有$ sing的字符串转换为int的主要内容,如果未能解决你的问题,请参考以下文章

请问C语言中如何将int转换为float

如何将object转换成int

如何将json字符串转成带有对象引用的java对象

如何将float转换成string

python 中将str类型转化为int

如何将16进制 转换byte数组