如何在 robotframework 中将“10.000,50”之类的字符串转换为浮点数 10000.50

How can I convert a string like "10.000,50" to float number 10000.50 in robotframework

如何在 robotframework

中将 10.000,50 之类的字符串转换为浮点数 10000.50

我试试这个

ParseFloat
    [Arguments]    ${String}
    Execute JavaScript    parseFloat(${String})

Replace
    [Arguments]    ${str}
    Execute JavaScript    ("" +${str}).replace(/\./g, "").replace(/,/g, ".")

但是没有得到我预期的结果

删除 . 个字符并将 , 替换为 .parseFloat 大功告成。

function strToFloat(str) {
  return parseFloat(str.replace(/\./ig,'').replace(/,/ig,'.'))
}
console.log(strToFloat("10.000,50"))

使用 JavaScript 你可以使用 String.prototype.replace() to remove all the . and than replace the only , by a dot. Finally return the Number.prototype.toFixed() 值:

String.prototype.toFloat = function() {
  var n = +this.replace(/\./g, '').replace(/,/, '.');
  return n.toFixed(2);
}

var n = '10.000,50'.toFloat();
console.log(n);

注意:如果字符串不是有效数字,String.prototype.toFloat() 函数可以 return NaN