我试图从数据网格解析两个值。字段是数字,当它们有逗号(例如554,20)时,我无法获得逗号后的数字。我试过parseInt和parseFloat。我该怎么做呢?
当前回答
您可以使用此功能。它将用' '替换逗号,然后它将parsefloat值,之后它将再次调整value中的逗号。
function convertToFloat(val) {
if (val != '') {
if (val.indexOf(',') !== -1)
val.replace(',', '');
val = parseFloat(val);
while (/(\d+)(\d{3})/.test(val.toString())) {
val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
}
}
return val;
}
其他回答
你试过这样做吗?: p
var str = '3.8';ie
alert( +(str) + 0.2 );
+(字符串)将字符串转换为浮点数。
方便的!
所以为了解决你的问题,你可以这样做:
var floatValue = +(str.replace(/,/,'.'));
@GusDeCool或任何人试图替换超过一千个分隔符,一种方法是一个regex全局替换:/foo/g。记住这一点。是元字符,因此必须转义或将其放在括号中(\。或[])。这里有一个选择:
var str = '6.000.000';
str.replace(/[.]/g,",");
我遇到了同样的问题,只是我事先不知道千位分隔符和小数点分隔符是什么。我最终编写了一个库来实现这个功能。如果你感兴趣,请访问:https://github.com/GuillaumeLeclerc/number-parsing
如果它们是单独的值,试试这个:
var values = "554,20".split(",")
var v1 = parseFloat(values[0])
var v2 = parseFloat(values[1])
如果它们是单个值(比如在法语中,1 / 2写成0,5)
var value = parseFloat("554,20".replace(",", "."));
您可以使用此功能。它将用' '替换逗号,然后它将parsefloat值,之后它将再次调整value中的逗号。
function convertToFloat(val) {
if (val != '') {
if (val.indexOf(',') !== -1)
val.replace(',', '');
val = parseFloat(val);
while (/(\d+)(\d{3})/.test(val.toString())) {
val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
}
}
return val;
}
推荐文章
- Python中的最大浮点数是多少?
- 如何清除所有<div>的内容在一个父<div>?
- 检测用户何时离开网页的最佳方法?
- 当“模糊”事件发生时,我如何才能找到哪个元素的焦点去了*到*?
- React不会加载本地图像
- 如何将Blob转换为JavaScript文件
- 在另一个js文件中调用JavaScript函数
- 如何在svg元素中使用z索引?
- 如何求一个数的长度?
- 跨源请求头(CORS)与PHP头
- 如何用Express/Node以编程方式发送404响应?
- parseInt(null, 24) === 23…等等,什么?
- JavaScript变量声明在循环外还是循环内?
- 元素在“for(…in…)”循环中排序
- 在哪里放置JavaScript在HTML文件?