2016-02-19 14 views
35

Mam wartość pływaka dla NG-model, który chciałbym, aby zawsze wyświetlać z 2 miejsc po przecinku w <input>:skośne jak wyświetlić numer zawsze z 2 miejsc po przecinku w <input>

<input ng-model="myNumb" step ="0.01" type="number"> 

Działa to dla większość przypadków, gdy "myNumb" ma dziesiętny. Ale to nie zmusi wyświetlanie 2 miejsc po przecinku, jeśli „myNumb” ma mniej niż 2 miejsc po przecinku (3,2) lub całkowitą (30)
Jak mogę wymusić wyświetlanie 2 miejsca po przecinku w polu <input>

+0

od został type = "numer", jeśli mogę zrobić toFixed (2) będzie rzucać błąd. :( – WABBIT0111

Odpowiedz

45

AngularJS - Input number with 2 decimal places może pomóc ... Filtrowanie:

  1. Ustaw wyrażenie regularne do sprawdzania poprawności danych wejściowych przy użyciu nG-wzór. Tutaj chcę zaakceptować tylko liczby z maksymalnie 2 miejscami po przecinku iz separatorem kropek.
<input type="number" name="myDecimal" placeholder="Decimal" ng-model="myDecimal | number : 2" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" step="0.01" /> 

Czytanie naprzód ten wskazywano na następnej odpowiedzi ng-model="myDecimal | number : 2".

+0

Zrobione, przepraszam, nie uważałem tego, ponieważ myślałem, że posiadanie tego w kontekście było lepsze, ale potem znowu masz rację: –

+1

, który wyświetla "1" zamiast "1.00" –

+1

To nie działa. sprawdza, czy dane wejściowe mają nie więcej niż 2 miejsca dziesiętne, ale nie zmienia wyświetlanej liczby, aby wyświetlić 2 miejsca dziesiętne (nawet jeśli są to 0) –

25

Czy spróbować użyć filtra

<input ng-model='val | number: 2'> 

https://docs.angularjs.org/api/ng/filter/number

+3

to faktycznie nie zadziała, ponieważ używam spowoduje to błąd. i nie mogę nie używać typu = "number" w tym przypadku – WABBIT0111

+8

Nie można tego zrobić w Angular, model ng akceptuje tylko takie przypisania ... https://docs.angularjs.org/error/ngModel/nonassign – jcc

+0

Zobacz poniższy link http://stackoverflow.com/questions/30760310/number-filter-filters-number-down-to-two-decimals-but-does-not-display-it-that/42688335#42688335 –

0

Zastosowanie filtra z pustym symbolem waluty ($)

{{val | currency:''}} 
+3

to faktycznie nie zadziała, ponieważ używam spowoduje to błąd. i nie mogę w tym przypadku użyć typu = "number" – WABBIT0111

17
{{value | number : fractionSize}} 

jak {{12.52311 | number : 2}}

więc będzie to wydrukować 12.52

6

Jeśli używasz kątowa 2, można użyć następujących do rundy do dwóch miejsc po przecinku {{ exampleNumber | number : '1.2-2' }}, jak w:

<ion-input value="{{ exampleNumber | number : '1.2-2' }}"></ion-input> 

PODZIAŁ

'1.2-2' oznacza {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}:

  • minimum 1 cyfra pojawi się przed przecinkiem
  • To pokaże co najmniej 2 cyfry po przecinku
  • ale nie więcej niż 2 cyfry

kredytowych ze względu here i here

2

Kolejny skrót do (odpowiedź @ maudulusa) do usunięcia {maxFractionDigits}, ponieważ jest opcjonalny.

Można użyć {{numberExample | number : '1.2'}}

Powiązane problemy