Tôi đang xử lý đơn vị tiền tệ và tôi muốn làm tròn số xuống còn 2 chữ số thập phân. Ngay cả khi số lượng là 500.0, tôi muốn nó là 500.00 để nhất quán. Khi tôi làm "500.00" .to_d nó chuyển đổi nó thành 500.0.to_d để luôn trả về 2 số thập phân trong ruby
Whats cách hay để thay đổi hành vi này? Tôi cũng sử dụng phương pháp này để làm tròn xuống 2 chữ số và đảm bảo nó luôn có 2 số thập phân.
def self.round_down(x, n=2)
s = x.to_s
l = s.index('.') ? s.index('.') + 1 + n : s.length
s = s[0, l]
s = s.index('.') ? s.length - (s.index('.') + 1) == 1 ? s << '0' : s : s << '.00'
s.to_f
end
Như câu tục ngữ đi, lập trình viên Bất động có thể viết C bằng ngôn ngữ * * bất kỳ! ''% .2f'% 500' là thành ngữ Ruby. –
@CamilleGoudeseune Tôi đổ lỗi cho nó quá nhiều năm Java:/ – mcfinnigan
sprintf rõ ràng hơn% và tôi có thể dễ dàng nhận trợ giúp về định dạng thông số bằng cách nhấn F1 trên sprintf trong IDE –