Если VideoStartPoint является строкой и ваша локаль использует '.' вместо ',' в качестве разделителя тысяч значение '11 .1234 'будет переведено как 11123.000, так как .NET будет использовать значение локали вашего потока для преобразования строки в десятичную.
Это может произойти на французском, итальянском, греческом языках, я думаю, на испанском.
Вам следует установить точку останова, чтобы проверить значение VideoStartPoint, даже если оно является десятичным. Может быть проблема на стороне клиента, которая неправильно преобразовывает числовую строку в десятичную.
EDIT:
Чтобы проиллюстрировать это, следующий код анализирует одну и ту же строку «11.450» с двумя разными языками, греческим и американским, в результате чего получаются два разных числа, 11450 и 11.450
.
var grNumber = decimal.Parse("123.450", CultureInfo.GetCultureInfo("el-GR"));
var usNumber = decimal.Parse("123.450", CultureInfo.GetCultureInfo("en-US"));
Debug.Assert(grNumber == 123450);
Debug.Assert(usNumber == (decimal) 123.45);
Следующий оператор LINQ возвращает все культуры, использующие '.' как их разделитель тысяч:
var cultures = (from culture in CultureInfo.GetCultures(CultureTypes.AllCultures)
where culture.NumberFormat.NumberGroupSeparator == "."
select culture.Name);
Существует 92 различных культуры, соответствующих 33 языкам ISO (CultureInfo.TwoLetterISOLanguageName), включая Испанию, Нидерланды, Бельгию, Германию и т. Д.