Một yếu tố đầu vào có chứa số một nơi dấu phẩy hoặc dấu chấm được sử dụng như phân cách thập phân và không gian có thể được sử dụng cho hàng ngàn nhóm như thế này:Chuyển đổi String với Dot hoặc Comma phân số thập phân đến số trong JavaScript
'1 2'
'110 000,23'
'100 1,23'
Làm thế nào người ta sẽ chuyển đổi chúng sang một số float trong trình duyệt sử dụng JavaScript?
Giao diện người dùng jQuery và jQuery được sử dụng. Number(string)
trả lại NaN và parseFloat()
dừng trên không gian hoặc dấu phẩy đầu tiên.
Điều này hoàn toàn bỏ qua thực tế là ',' thường được sử dụng làm dấu tách hàng nghìn (nhóm). Nếu bạn sử dụng điều này trên một số như '1.000.000.00' bạn nhận được '1', điều này rõ ràng là hoàn toàn sai. – Thor84no
@ Thor84no Bạn cho rằng mã của mình sẽ chạy trong văn hóa EN, nhưng nếu dữ liệu sẽ được nhập từ những người sử dụng tiếng Pháp, Đan Mạch, Phần Lan, Séc, vv, sẽ không có sự nhầm lẫn. Tất cả phụ thuộc vào việc sử dụng mã số – Zbynek
@Zbynek Tôi không cho rằng điều đó. Hầu hết nếu không phải tất cả các ngôn ngữ/khu vực đều sử dụng nhóm chữ số của một số mô tả. Ký tự được sử dụng thay đổi (ví dụ: '[., ']'). Tôi chỉ ra một thực tế rằng mã này là bỏ qua một số lượng lớn các yếu tố đầu vào sẽ làm cho nó không chính xác mà không có cảnh báo trong câu trả lời (và không có cách nào để biết nó đã xảy ra). Ngay cả khi các ngôn ngữ bạn liệt kê sẽ không có vấn đề này mà không phủ nhận thực tế rằng trong * nhiều * * nhiều * ngôn ngữ nó sẽ có vấn đề đó. Lưu ý rằng nó sẽ bị chia đều nếu ngôn ngữ được đề cập sử dụng '.' làm ký tự nhóm chữ số của nó. – Thor84no