Ввод номера HTML5 – всегда показывать 2 десятичных знака

Есть ли способ форматировать значение input[type='number'] чтобы всегда показывать 2 десятичных знака?

Пример: я хочу видеть "0.00" вместо 0 .

благодаря

Вы не можете на самом деле, но вы можете на полпути:

  

Решенный после предложений и добавления части jQuery для форматирования parseFloat($(this).val()).toFixed(2) числа parseFloat($(this).val()).toFixed(2)

Использование атрибута step позволит это сделать . Он не только определяет, сколько он должен выполнять цикл, но и допустимые числа. Использование step="0.01" должно делать трюк, но это может зависеть от того, как браузер придерживается стандарта.

  

Решения, которые используют input="number" step="0.01" отлично подходят для меня в Chrome, однако не работают в некоторых браузерах, в частности Frontmotion Firefox 35 в моем случае .., которые я должен поддерживать.

Мое решение состояло в jQuery с плагином jQuery Mask Игоря Эскобара:

    

Это хорошо работает, конечно, нужно проверить представленное значение позже 🙂 ПРИМЕЧАНИЕ. Если бы мне не нужно было делать это для совместимости браузеров, я бы использовал приведенный выше ответ by @Rich Bradshaw.

Это правильный ответ:

  

Взгляните на это :

   

Это работает, чтобы обеспечить максимум 2 десятичных разряда без автоматического округления до 2-х мест, если пользователь не закончил печатать.

 function naturalRound(e) { let dec = e.target.value.indexOf(".") let tooLong = e.target.value.length > dec + 3 let invalidNum = isNaN(parseFloat(e.target.value)) if ((dec >= 0 && tooLong) || invalidNum) { e.target.value = e.target.value.slice(0, -1) } } 
 import { Component, Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'replace' }) export class ReplacePipe implements PipeTransform { transform(value: any): any { value = String(value).toString(); var afterPoint = ''; var plus = ',00'; if (value.length >= 4) { if (value.indexOf('.') > 0) { afterPoint = value.substring(value.indexOf('.'), value.length); var te = afterPoint.substring(0, 3); if (te.length == 2) { te = te + '0'; } } if (value.indexOf('.') > 0) { if (value.indexOf('-') == 0) { value = parseInt(value); if (value == 0) { value = '-' + value + te; value = value.toString(); } else { value = value + te; value = value.toString(); } } else { value = parseInt(value); value = value + te; value = value.toString(); } } else { value = value.toString() + plus; } var lastTwo = value.substring(value.length - 2); var otherNumbers = value.substring(0, value.length - 3); if (otherNumbers != '') lastTwo = ',' + lastTwo; let newValue = otherNumbers.replace(/\B(?=(\d{3})+(?!\d))/g, ".") + lastTwo; parseFloat(newValue); return `${newValue}`; } } }