I have written a custom piece of code to do this
If you want to replace ,
with .
, remove translate_decimals functions completely.
var input = document.querySelector('input[role="custom-number"]');_x000D_
var bincr = document.querySelector('button[role="increment"]');_x000D_
var bdecr = document.querySelector('button[role="decrement"]');_x000D_
_x000D_
function translate_decimals(side = 0)_x000D_
{_x000D_
input.value = (side == ',' ? input.value.replace('.',',') : input.value.replace(',','.'));_x000D_
}_x000D_
translate_decimals(',');_x000D_
_x000D_
bincr.addEventListener('click', ()=>{_x000D_
if (input.hasAttribute('max'))_x000D_
{_x000D_
if (input.value.substr(0,input.getAttribute('max').length) == input.getAttribute('max').substr(0,input.getAttribute('max').length))_x000D_
{_x000D_
return;_x000D_
}_x000D_
else_x000D_
{_x000D_
translate_decimals('.');_x000D_
let temp = input.value;_x000D_
input.value = "";_x000D_
input.value = (input.hasAttribute('step') ? (parseFloat(temp) + parseFloat(input.getAttribute('step'))) : temp++);_x000D_
translate_decimals(',');_x000D_
}_x000D_
}_x000D_
});_x000D_
_x000D_
bdecr.addEventListener('click', ()=>{_x000D_
if (input.hasAttribute('min'))_x000D_
{_x000D_
if (input.value.substr(0,input.getAttribute('min').length) == input.getAttribute('min').substr(0,input.getAttribute('min').length))_x000D_
{_x000D_
return;_x000D_
}_x000D_
else_x000D_
{_x000D_
translate_decimals('.');_x000D_
input.value = (input.hasAttribute('step') ? (input.value - input.getAttribute('step')) : input.value--);_x000D_
translate_decimals(',');_x000D_
}_x000D_
}_x000D_
});
_x000D_
/* styling increment & decrement buttons */_x000D_
button[role="increment"],_x000D_
button[role="decrement"] {_x000D_
width:32px;_x000D_
}
_x000D_
<input type="text" role="custom-number" step="0.01" min="0" max="0" lang="en" value="1.99">_x000D_
<button role="increment">+</button>_x000D_
<button role="decrement">-</button>
_x000D_