Решение, может кому пригодится.
Код указан для компонента либы Vuetify, т.к. требуется @change.native (напрямую на теге input не работает)
<div id="app">
<v-text-field
v-model="myModel"
label="Tine:"
@keyup="filterToFloat($event)"
@change.native="setToFloat($event)"
>
<span slot="append">час</span>
</v-text-field>
</div>
<script>
let app = new Vue({
el: '#app',
data: {
item: {
subitem: 0.25
}
},
methods: {
setToFloat: (event) => {
event.target.value = parseFloat(event.target.value)
event.target.dispatchEvent(new Event('input'))
},
filterToFloat: (event) => {
event.target.value = event.target.value.replace(',', '.').replace(new RegExp(/[^0-9.]/), '')
event.target.dispatchEvent(new Event('input'))
},
},
})
</script>