See
Precision, scale, and length (Transact-SQL) | Microsoft Docs[
^]
In SQL you define the precision and scale of a numeric value in the datbase. eg numeric(18,0) means you can store a 18 digit number but with no decimals where as Numeric(18,5) will allow 5 decimal spaces. Calculations will default to the field scales unless you explicitly convert them to a different precision / scale size.
ie
cast([StartWeight] as numeric(18,5))