2010-07-02 53 views
192

Tôi muốn hiển thị một số đến 2 chữ số thập phân.JavaScript hiển thị một float đến 2 chữ số thập phân

Tôi nghĩ mình có thể sử dụng toPrecision(2) trong JavaScript.

Tuy nhiên, nếu số là 0.05, tôi nhận được 0.0500. Tôi muốn nó vẫn như cũ.

Xem trên JSbin.

Cách tốt nhất để làm điều này là gì?

Tôi có thể nghĩ đến việc viết mã một vài giải pháp, nhưng tôi tưởng tượng (tôi hy vọng) một cái gì đó như thế này được xây dựng trong?

Trả lời

333
float_num.toFixed(2); 

Lưu ý:toFixed() sẽ tròn hoặc pad với số không nếu cần thiết để đáp ứng các quy định chiều dài.

+19

Nhưng nó trả về chuỗi, không nổi! – Anwar

+12

Câu hỏi tác giả muốn "hiển thị" nó, vì vậy một chuỗi là hoàn hảo –

+1

Và bạn luôn có thể sử dụng parseFloat (float_num.toFixed (2)) để chuyển đổi chuỗi trở lại float trong khi chỉ giữ hai số thập phân. – Hankrecords

44

Bạn có thể làm điều đó với chức năng toFixed, nhưng đó là buggy in IE. Nếu bạn muốn có một giải pháp đáng tin cậy, hãy nhìn vào câu trả lời của tôi here.

+16

nghệ cần được phát triển hơn là thích ứng với IE ... (btw trong nút js 'float_num.toFixed (2); 'hoạt động tốt) – fider

4

Không biết làm thế nào tôi có cho câu hỏi này, nhưng ngay cả khi đó là nhiều năm kể từ khi điều này đã được hỏi, tôi muốn thêm một phương pháp nhanh chóng và đơn giản, tôi làm theo và chưa bao giờ làm tôi thất vọng:

var num = responce_from_a_function_or_something(); 
var fixed_num = parseFloat(num).toFixed(2); 
+0

Tại sao 'parseFloat()' ở đó? Nó chỉ nên được sử dụng nếu số đó đến từ một chuỗi. – alex

+2

Trong một số trường hợp khi tôi nhận được một số giá trị thuộc tính "data-" với jquery từ một phần tử, nếu tôi chỉ sử dụng toFixed nó tạo ra một lỗi. parseFloat sửa lỗi. – panos

+1

Vâng đó là ý tôi muốn nói ở trên * nếu nó xuất phát từ một chuỗi *. Nhưng sử dụng nó luôn luôn là lời khuyên xấu. – alex

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