2016-02-19 51 views
35

Tôi có một giá trị float cho ng-mô hình mà tôi muốn để luôn luôn hiển thị với 2 chữ số thập phân trong <input>:góc làm thế nào để hiển thị con số luôn với 2 chữ số thập phân trong <input>

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

này làm việc cho hầu hết trường hợp khi "myNumb" có số thập phân. Nhưng nó sẽ không buộc hiển thị của 2 chữ số thập phân nếu "myNumb" còn ít hơn 2 chữ số thập phân (3.2), hoặc một số nguyên (30)
Làm thế nào tôi có thể buộc một màn hình của 2 vị trí thập phân trong lĩnh vực <input>

+0

kể từ khi đã type = "number", nếu tôi làm toFixed (2) nó sẽ ném ra một lỗi. :( – WABBIT0111

Trả lời

45

AngularJS - Input number with 2 decimal places nó có thể giúp ... Filtering:

  1. Đặt biểu thức chính quy để xác nhận đầu vào sử dụng ng-pattern. Ở đây tôi muốn chỉ chấp nhận các số có tối đa 2 chữ số thập phân và dấu phân cách dấu chấm.
<input type="number" name="myDecimal" placeholder="Decimal" ng-model="myDecimal | number : 2" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" step="0.01" /> 

Reading phía trước này đã chỉ vào câu trả lời tiếp theo ng-model="myDecimal | number : 2".

+0

Xong, xin lỗi tôi đã không xem xét điều đó bởi vì tôi nghĩ rằng có nó trong bối cảnh tốt hơn, nhưng sau đó một lần nữa, bạn là đúng. –

+1

hiển thị "1" thay vì "1,00" –

+1

Điều đó không hiệu quả. kiểm tra rằng đầu vào không có nhiều hơn 2 số thập phân, nhưng không thay đổi số hiển thị để hiển thị 2 số thập phân (ngay cả khi số 0) –

25

Bạn có thử sử dụng bộ lọc

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

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

+3

điều này thực sự sẽ không hoạt động, bởi vì tôi đang sử dụng điều này sẽ ném một lỗi. và tôi không thể không sử dụng một loại = "số" trong trường hợp này – WABBIT0111

+8

Bạn không thể làm điều này trong Angular, ng-model chỉ chấp nhận các biểu thức được gán ... https://docs.angularjs.org/error/ngModel/nonassign – jcc

+0

Vui lòng xem liên kết dưới đây http://stackoverflow.com/questions/30760310/number-filter-filters-number-down-to-two-decimals-but-does-not-display-it-that/42688335#42688335 –

0

Sử dụng bộ lọc tệ với biểu tượng trống ($)

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

này thực sự sẽ không hoạt động, bởi vì tôi đang sử dụng điều này sẽ ném một lỗi. và tôi không thể sử dụng một loại = "số" trong trường hợp này – WABBIT0111

17
{{value | number : fractionSize}} 

như 012.379.

vì vậy đây sẽ in 12.52

6

Nếu bạn đang sử dụng góc 2, bạn có thể sử dụng sau đây lọt vào vòng hai chữ số thập phân {{ exampleNumber | number : '1.2-2' }}, như trong:

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

CHI TIẾT TỪNG

'1.2-2' có nghĩa là {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}:

  • tối thiểu là 1 chữ số sẽ được hiển thị trước dấu thập phân
  • Nó sẽ hiển thị ít nhất là 2 chữ số sau dấu thập phân
  • Nhưng không quá 2 chữ số

tín dụng do herehere

2

Cách viết tắt khác (câu trả lời của @ maudulus) để xóa {maxFractionDigits} vì tùy chọn này là tùy chọn.

Bạn có thể sử dụng {{numberExample | number : '1.2'}}

Các vấn đề liên quan