in csharp/EPAM.Deltix.HdTime/Parsers.cs [87:101]
internal static long Decimal(String from, int ofs)
{
int end = from.Length;
int x = Digit(from, ofs++);
for (; ofs < end; ++ofs)
{
uint c = (uint)from[ofs] - '0';
if (c > 9)
break;
x = x * 10 + (int)c;
}
return ((long) ofs << 32) | (UInt32) x;
}