Câu hỏi này tương tự như "dropping trailing ‘.0’ from floats", nhưng đối với Perl và có số chữ số tối đa sau dấu thập phân.Trong Perl, làm thế nào tôi có thể giới hạn số lượng vị trí sau dấu thập phân nhưng không có số 0 dấu?
Tôi đang tìm cách chuyển đổi số thành định dạng chuỗi, bỏ mọi dự phòng '0', bao gồm không chỉ sau dấu thập phân. Và vẫn với số lượng tối đa của kỹ thuật số, ví dụ: 3
Dữ liệu đầu vào là nổi. đầu ra mong muốn:
0 -> 0
0.1 -> 0.1
0.11 -> 0.11
0.111 -> 0.111
0.1111111 -> 0.111
Giải pháp này chỉ có tác dụng đối với số lượng nhỏ. 'print' giảm phần phân đoạn hoặc chuyển sang ký hiệu khoa học hoàn toàn sau 15 chữ số; 'gần nhất' có thể khuyếch đại bất kỳ lỗi nào đã có trong số đó (ví dụ làm tròn số '111111111129995.56' thành' .001' với 'gần nhất' tạo' 111111111129995.58', trong khi 'sprintf ("%. 3f ", 111111111129995.56)' sản xuất chính xác '111111111129995.56' .) – vladr