如何将带有$ 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的主要内容,如果未能解决你的问题,请参考以下文章