2015-05-20 11 views
6

Tôi có một bảng được tạo động để nhân giá * qty. Một số giá là một phần xu. Ví dụRails number_to_currency xóa dấu 0 ở số thập phân

nếu giá của một mục là 0,0375 tôi có thể hiển thị trong bảng của tôi như

number_to_currency(0.0375,:precision => 4) 
=> $0.0375 

nhưng trên số lượng mà giá cả là một số 2 chữ số thập phân tiêu chuẩn tôi nhận được

number_to_currency(33.95,:precision => 4) 
    => $39.9500 

Tôi cần một cách để cắt các số 0 theo sau của một giá trị thập phân. Hãy nhớ rằng đầu ra nằm trong một khối Model.each vì vậy tôi không chắc chắn tôi có thể sửa đổi các tham số chính xác có điều kiện.

Trả lời

12

Cố gắng chỉ định strip_insignificant_zeros tùy chọn:

number_to_currency(33.95, precision: 4, strip_insignificant_zeros: true) 

Cần xóa số 0 sau dấu tách thập phân. Here là mô tả về tùy chọn này.

+0

Cảm ơn bạn! Câu trả lời này đã đáp ứng các yêu cầu của tôi vì number_to_currency nằm trong vòng lặp. – ctilley79

0
number_to_currency(33.95,:precision => 2) 
0

Kể từ number_to_currency trả về một String, bạn có thể sử dụng .remove(/0+$/) để loại bỏ bất kỳ số không trailing:

number_to_currency(33.95,:precision => 4).remove(/0+$/) 
0

Hãy thử sử dụng round trước number_to_currency:

number_to_currency(33.95.round(4)) # $33.95 
number_to_currency(0.0375.round(4)) # $0.0375 
Các vấn đề liên quan