Jon*_*eet 47
看看java.text.NumberFormat.例如:
import java.text.*;
import java.util.*;
public class Test
{
// Just for the sake of a simple test program!
public static void main(String[] args) throws Exception
{
NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("835,111.2");
System.out.println(number); // or use number.doubleValue()
}
}
Run Code Online (Sandbox Code Playgroud)
根据您使用的数量类型,您可能希望解析为BigDecimal.最简单的方法可能是:
BigDecimal value = new BigDecimal(str.replace(",", ""));
Run Code Online (Sandbox Code Playgroud)
或者使用DecimalFormat具有setParseBigDecimal(true):
DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(Locale.US);
format.setParseBigDecimal(true);
BigDecimal number = (BigDecimal) format.parse("835,111.2");
Run Code Online (Sandbox Code Playgroud)
pax*_*blo 10
最简单的并不总是最正确的.这是最简单的:
String s = "835,111.2";
// NumberFormatException possible.
Double d = Double.parseDouble(s.replaceAll(",",""));
Run Code Online (Sandbox Code Playgroud)
我没有打扰过locales,因为你明确表示你想要删除逗号,所以我假设你已经将自己建立为逗号是一个区域设置,逗号是千位分隔符,句点是小数分隔符.如果你想要正确的(在国际化方面)行为,这里有更好的答案.
使用java.text.DecimalFormat:
DecimalFormat是NumberFormat的具体子类,用于格式化十进制数.它具有多种功能,旨在解析和格式化任何语言环境中的数字,包括支持西方,阿拉伯语和印度语数字.它还支持不同类型的数字,包括整数(123),定点数(123.4),科学记数法(1.23E4),百分比(12%)和货币金额(123美元).所有这些都可以本地化.
| 归档时间: |
|
| 查看次数: |
62135 次 |
| 最近记录: |