Этот пост посвящен C # и .Net, но некоторая информация полезна для других технологий.
Насколько я помню, у меня были проблемы с приложениями или играми, которые вылетали из-за другого стиля разбора десятичных чисел. . Это происходит очень часто, от приложений САПР, библиотек до веб-страниц. Не знаю, незнание это или незнание, но это действительно раздражает.
В чем проблема? Вот статья об этом вики, но она краткая:
Вот карта, которая показывает, какой вид десятичного разделителя (десятичный знак) используется во всем мире.
Десятичные знаки:
Большинство стран Европы и Южной Америки пишут 1 000 000, 00 или 1000000,00 иногда 1.000.000,00 вместо «имперской» (отмеченной синим) напишите 1,000,000.00
Позвольте мне привести несколько примеров из всех проблем, с которыми я столкнулся в прошлом месяце.
Mirosoft Пример XNA для Windows Phone 7 : Есть очень удобный класс, который анализирует XML-файл для создания анимации XNA
///
/// Загружает настройки анимации из xml файла.
///
частная пустота LoadAnimiationFromXML ()
{
XDocument doc =
XDocument.Load («Контент / Текстуры / AnimationsDefinition.xml»);
XName name = XName.Get («Определение»);
var definitions = doc.Document.Descendants (имя);
if (animationDefinition.Attribute ("Speed")! = null)
{
animation.SetFrameInvterval (TimeSpan.FromMilliseconds (
double.Parse (animationDefinition.Attribute ("Скорость"). Значение)));
}
double.Parse
генерирует исключение, одна простая задача - использовать XmlConvert.ToDouble ();
или выполнить синтаксический анализ с помощью InvariantCulture
.
.Net-приложение, которое использует Файлы CSV для хранения входного вектора в виде CSV - также генерируют.
Другое приложение .Net, которое имеет некоторый синтаксический анализ внутри класса, - выбрасывает.
Итак, как мы можем это исправить?
Есть ли другой способ решить эту проблему? Могу ли я сделать приложение неизменным? Например, запуск приложения в другой среде.
PS. Я хочу запустить приложение, но у меня нет кода.