Codice VB.NET, non testato, ma ho usato qualcosa di simile per un oracleDecimal che avevo. La trasformazione in C# dovrebbe essere facile.
OracleDecimal oraDec = MDSYS.SDO_GEOMETRY(2001, 1041001,
MDSYS.SDO_POINT_TYPE(-2.89957214912471,1.56043985049899E-15,NULL),NULL,NULL)
oraDec = OracleDecimal.SetPrecision(oraDec, 28) ' !!!
Decimal netDec = oraDec.Value