시스템 언어가 "de_DE.UTF-8"로 설정된 라즈베리 파이와 모노 버전 3.28이 설치되어 있습니다. 내 프로그램은 Doubles
에 Strings
을 변환해야하지만, 나는 몇 가지 문제로 실행 : 독일어 로켈에서 Double.Parse가 실패 함
Double.Parse("500", NumberStyles.Float, CultureInfo.InvariantCulture);
가 잘 작동
.Double.Parse("500.123", NumberStyles.Float, CultureInfo.InvariantCulture);
왜곡 FormatException
, 이상한 무엇입니까?
Double.Parse("500,123", NumberStyles.Float, CultureInfo.GetCultureInfo("de-DE"));
FormatException
도 예외입니다.
재미있는 점은 시스템 언어 (sudo raspi-config)를 "en-GB.UTF-8"로 변경하면 모든 기능이 예상대로 작동한다는 것입니다. 누구든지이 문제를 독일 사용자로 해결하는 방법을 알고 있으며 독일 시스템 설정을 사용하고 싶습니다.
Mono 프로젝트에 버그를 신고해야합니다. 또는 직접 오픈 소스의 요점을 스스로 고치십시오. –
Imo 문제는 culture/구문 분석 자체가 아니라 ARMHF (Raspberry PI)의 float/double 처리 Mono 문제입니다. 3.2.7 이전 버전에서는 armhf의 부동 소수점에 문제가 있었기 때문에 사용자가 3.2.8을 모노 버전으로 사용하고 있는지 확인할 수 있습니까? –
내 모노 버전 : 모노 JIT 컴파일러 버전 3.2.8 (Debian 3.2.8 + dfsg-4 + rpi1) 저작권 (C) 2002-2014 Novell, Inc, Xamarin Inc 및 기여자. www.mono-project.com \t TLS : 없음 \t 기타 : softdebug \t LLVM : 지원 사용할 수 없습니다 VFP + 하드 \t 장애인, ARMEL : \t 알림 정상 : epoll에 \t 아키텍처 \t SIGSEGV를 __thread. \t GC : sgen mono 3.27이 초기 armhf 포트를 가져온 것 같습니다. @HansPassant Double.cs의 출처를 조사했습니다. 내가 생각하기에 /master/mcs/class/corlib/System/Double.cs 533에서이 일을하고있다. 하지만 코드 ParseImpl을 찾을 수 없습니다. – user3469517