Tôi có một pi mâm xôi với ngôn ngữ hệ thống được đặt thành "de_DE.UTF-8" và phiên bản mono 3.28 được cài đặt. chương trình của tôi cần phải chuyển đổi Strings
vào Doubles
, nhưng tôi chạy vào một vài vấn đề:Double.Parse không thành công bằng tiếng Đức
Double.Parse("500", NumberStyles.Float, CultureInfo.InvariantCulture);
Làm việc tốt.
Double.Parse("500.123", NumberStyles.Float, CultureInfo.InvariantCulture);
Ném FormatException
, điều kỳ lạ.
Double.Parse("500,123", NumberStyles.Float, CultureInfo.GetCultureInfo("de-DE"));
Ném FormatException
quá;
Điều thú vị là nếu tôi thay đổi ngôn ngữ hệ thống (sudo raspi-config) thành "en-GB.UTF-8", tất cả các chức năng hoạt động như mong đợi. Bất cứ ai cũng biết làm thế nào để giải quyết điều này như một người dùng Đức tôi muốn sử dụng các thiết lập hệ thống của Đức.
Bạn nên gửi lỗi với dự án Mono. Hoặc tự khắc phục, phần lớn là điểm của Nguồn mở. –
Vấn đề Imo không phải là với văn hóa/phân tích cú pháp chính nó nhưng với Mono xử lý nổi/đôi trên ARMHF (Raspberry PI). Người dùng có thể xác nhận rằng anh ta đang sử dụng 3.2.8 với chuyển đổi đơn âm vì các phiên bản trước 3.2.7 có vấn đề với phao nổi trên armhf. –
Phiên bản đơn âm của tôi: Phiên bản trình biên dịch đơn JIT 3.2.8 (Debian 3.2.8 + dfsg-4 + rpi1) Bản quyền (C) 2002-2014 Novell, Inc, Xamarin Inc và các cộng tác viên. www.mono-project.com \t TLS: __thread \t SIGSEGV: bình thường \t Notifications: epoll \t Kiến trúc: armel, VFP + cứng \t Disabled: none \t Misc: softdebug \t LLVM: được hỗ trợ, không được kích hoạt. \t GC: sgen Có vẻ như mono 3,27 vừa mang cổng armhf ban đầu. @HansPassant Tôi nhìn vào nguồn của Double.cs. Tôi nghĩ rằng /master/mcs/class/corlib/System/Double.cs tại 533 sau đây là làm điều này. Nhưng tôi không thể tìm mã ParseImpl. – user3469517