如何将40,123.012345678901
等字符串转换为double
?
double d = Double.parseDouble("40,123.012345678901");
抛出数字格式异常。
由于
答案 0 :(得分:2)
如果没有办法摆脱逗号(,),你可以使用另一种方法:
NumberFormat format = NumberFormat.getInstance(Locale.US);
Number number = format.parse("40,123.012345678901");
double d = number.doubleValue();
答案 1 :(得分:1)
最简单的方法是删除逗号:
Drupal.behaviors.exampleModule = {
attach: function (context, settings) {
urlInfo = parseURL(window.location.href);
$(urlInfo.hash).show();
}
};
function parseURL(url) {
var parser = document.createElement('a'),
searchObject = {},
queries, split, i;
parser.href = url;
// Convert query string to object
queries = parser.search.replace(/^\?/, '').split('&');
for( i = 0; i < queries.length; i++ ) {
split = queries[i].split('=');
searchObject[split[0]] = split[1];
}
return {
protocol: parser.protocol,
host: parser.host,
hostname: parser.hostname,
port: parser.port,
pathname: parser.pathname,
search: parser.search,
searchObject: searchObject,
hash: parser.hash
};
}
答案 2 :(得分:1)
double
限制在大约16位精度。如果您需要更高的精度,则应使用BigDecimal。
BigDecimal bd = new BigDecimal("40,123.012345678901".replace(",", ""));
答案 3 :(得分:0)
您应该从字符串中删除逗号(,):
这将有效:
float
答案 4 :(得分:0)
使用NumberFormat
获取double
值,
try {
NumberFormat format = NumberFormat.getInstance();
Number parse = format.parse("40,123.012345678901");
System.out.println(parse.doubleValue());
} catch (ParseException ex) {
System.out.println(ex.getMessage());
}