У меня есть следующий случай: со стороны клиента я получаю двойное значение в строке, это может быть либо в формате «en-GB», либо в формате de, т.е. 123.10 или 123,10. Однако мне нужно преобразовать оба эти числа в 123.10. Я попробовал то есть писать следующий тест, используя NumberFormatInfo, однако он не проходит:Преобразование чисел в один формат в C#
var format = new NumberFormatInfo { NumberGroupSeparator = ",", NumberDecimalSeparator = "." };
var a = Double.Parse("23000.10", format);
var b = Double.Parse("23000,10", format);
Assert.AreEqual(a,b);
Что я делаю неправильно?
Вы просто подтвердили, что струны производят различные значения в ан-ГБ. Вы уже знали это, не так много смысла в тестировании. Перейдите в Assert.AreNotEqual(), чтобы пройти тест. –
правильно ... как заставить их производить одинаковое значение без ручной проверки запятой и замены ее на десятичную. – user1950055
'Random.Next' будет более читаемым способом получения случайных результатов от ввода пользователем. '23.000,44' должен дать вам некоторые интересные результаты ... Нет никакого способа сделать то, что вы хотите, не зная входной формат (Culture in .Net terms). –