введите число 11 десятичных знаков с пробелом не позволяет число> 999 - PullRequest
0 голосов
/ 23 марта 2019

999.12345678901 работает, но все, что>> 1000 оценивается как NaN (предупреждение в консоли) и устанавливает ввод в 0. Я использую этот канал в onBlur ввода.

   @Pipe({
      name: 'rExact'
   })
   export class rExactPipe extends DecimalPipe {
        transform(value: number): any {
           if(isNaN(value))
               return null;

           return super.transform(value, "1.2-11");  
        }
  }

это событие onblur:

this.selected.UnitPrice = +new rExactPipe(this.numberLocale).transform(this.selected.UnitPrice);

поле ввода номера связывается следующим образом: [(ngModel)] = "selected.UnitPrice"

все числа должны работать с плавающей запятой до 15 цифр, потому что js 64bit. что я делаю не так?

1 Ответ

2 голосов
/ 23 марта 2019

проблема в том, что DecimalPipe добавляет символ , после тысяч, как здесь 1,000, а в вашем коде этот небольшой плюс +new преобразует результат обратно в число.эта запятая делает его непарсируемым, и в результате вы получаете NaN.чтобы решить проблему с представлением, просто удалите знак плюс и, если вам нужно значение, используйте его без канала

...