这是按预期工作的:
此parseFloat(newValue).toLocaleString("de-DE", { minimumFractionDigits: 2, maximumFractionDigits: 2 })
将生成字符串:"34.886,55"
这不能按预期工作:
对于parseFloat("34.886,55")
,我收到一个号码,但我在逗号后丢失了所有内容:34.886
。
如何解决此问题?
答案 0 :(得分:0)
以下是数字解析的简短示例...逗号在数字中无效,只有句号表示小数分隔符。如果遇到,则字符串转换停止,如第二个日志中所示。还要检查第三个日志,如果它低于100,我会添加一个值为真的检查,这样就更明显的是你没有玩千位分隔符但实际上是十进制分隔符。
--match 'alex-[0-9][0-9][0-9][0-9]w[0-9][0-9].[AB]'

答案 1 :(得分:0)
我写了这个简单的函数来做 locale based parseFloat
,据我所知,这个函数的假设是。
"," in our case
)以获取数组中的两个元素。"." in our case
)。"." in our case
)
var str = "34.886,55"
console.log("before: ", str);
str = localeParseFloat(str, ",", ".");
console.log("resulting floating value from the function: ", str);
function localeParseFloat(str, decimalChar, separatorChar){
var out = [];
str.split(",").map(function(x){
x = x.replace(".", "");
out.push(x);
})
out = out.join(".");
return parseFloat(out);
}

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
&#13;