我在这个论坛上发现以下正则表达式将任意数字替换为可能的最小十进制长度:
std::vector<cv::Mat> symbols(opts.numofblocksX * opts.numofblocksY]);
它的效果非常好,除了一种情况:当数字等于49.9999999时,当我将maxDecimal设置为0时,它返回5而不是50.我有点迷失正则表达式并且如果你出现就会很感激提出建议。
答案 0 :(得分:2)
只需删除问号var co = [];
function coin(n){
co=[];
while(n!=0){
if (n>=25){
co.push("25");
n = n-25;
}
else if (n>=10){
co.push("10");
n = n-10;
}
else if (n>=5){
co.push("5");
n = n -5;
}
else if (n>=2){
co.push("2");
n = n - 2;
}
else if (n>=1){
co.push("1");
n = n - 1;
}
}
console.log(co);
}
,因为这会使?
缩减为50
,因为正则表达式表示0或1出现小数点后跟1个或多个5
& #39; S。你不想要那个,因为50中的0会匹配那个0+部分,因为小数点是可选的。使用此正则表达式以确保仅适当地替换小数部分。
0