I suggest the following:
(^100(\.0{1,2})?$)|(^([1-9]([0-9])?|0)(\.[0-9]{1,2})?$)
It corresponds to 100, 100.0 and 100.00 using this part
^100(\.0{1,2})?$
and numbers such as 0, 15, 99, 3.1, 21.67, using
^([1-9]([0-9])?|0)(\.[0-9]{1,2})?$
Pay attention to which leading zeros are forbidden, but trailing zeros are allowed (although no more than two decimal places).
Alexander Prokofyev
source share