Ich habe eine Raspberry Pi mit Systemsprache auf "de_DE.UTF-8" und Mono-Version 3.28 installiert. Meine Programme müssen Strings
in Doubles
konvertieren, aber ich lief in ein paar Probleme:Double.Parse schlägt im deutschen Gebietsschema fehl
Double.Parse("500", NumberStyles.Float, CultureInfo.InvariantCulture);
ganz gut funktioniert.
Double.Parse("500.123", NumberStyles.Float, CultureInfo.InvariantCulture);
Wirft FormatException
, was ist komisch.
Double.Parse("500,123", NumberStyles.Float, CultureInfo.GetCultureInfo("de-DE"));
Wirf auch FormatException
;
Die lustige Sache ist, wenn ich meine Systemsprache (sudo raspi-config) zu "en-GB.UTF-8" ändere, funktionieren alle Funktionen wie erwartet. Jeder weiß, wie man das als deutscher Benutzer löst. Ich möchte deutsche Systemeinstellungen verwenden.
Sie sollten einen Fehler mit dem Mono-Projekt einzureichen. Oder repariere es selbst, hauptsächlich den Punkt von Open Source. –
Imo Problem ist nicht mit Culture/Parsing selbst aber mit Mono Handhabung Float/Double auf ARMHF (Raspberry PI). Kann der Benutzer bestätigen, dass er 3.2.8 mit mono - version benutzt, da Versionen vor 3.2.7 Probleme mit floats auf armhf hatten. –
Meine Mono - Version: Mono-JIT-Compiler-Version 3.2.8 (Debian 3.2.8 + dfsg-4 + rpi1) Copyright (C) 2002-2014 Novell, Inc., Xamarin Inc und Mitwirkende. www.mono-project.com \t TLS: __thread \t SIGSEGV: normal \t Hinweise: epoll \t Architektur: armel, vfp + hart \t Behinderte: keine \t Sonstiges: softdebug \t LLVM: unterstützt wird, nicht aktiviert. \t GC: sgen Es scheint Mono 3.27 brachte nur anfängliche Armhf Port. @HansPassant Ich schaute in Quelle von Double.cs. Ich denke, /master/mcs/class/corlib/System/Double.cs bei 533 folgt dies. Aber ich kann nicht für Code ParseImpl finden. – user3469517