Re[5]: 1.1.0-rc2
От: Sinix  
Дата: 23.09.16 14:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

S>>Уж слишком неочевидные результаты оно выдаёт для extension-метода.


AVK>Например?

Так в тестах есть. Не, оно как бы логично, но

        [TestCase(" \r\n\t\t \v -1.0 \r\n", ExpectedResult = -1.0)]
        [TestCase("-Infinity", ExpectedResult = double.NegativeInfinity)]
        [TestCase("-infinity", ExpectedResult = null)]
        [TestCase("-1.0", ExpectedResult = -1.0)]
        [TestCase("- 1.0 ", ExpectedResult = null)]
        public double? ToDouble(string str) => str.ToDouble(provider: CultureInfo.InvariantCulture);

заставляет вспомнить js WAT

+ есть ещё одна эпичная мелочь, которая меня всегда убивала. В числах с плавающей точкой по умолчанию используется
 NumberStyles.Float| NumberStyles.AllowThousands


что для строк в русской или немецкой культурах приводит к
double.Parse("1,0", CultureInfo.InvariantCulture); // 10. Приятной отладки.


У нас используется просто Float, что с одной стороны упрощает жизнь, с другой добавляет путаницы.
Может, упростить до AllowLeadingSign | AllowDecimalPoint | AllowExponent, без пробелов? Ну и до AllowLeadingSign для int.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.