Serviceを読んで理解し、同意したものとみなします。serverのnumeric型に小数を登録すると0になるdouble型での計算結果が0.001未満になっていたことが原因のようです。serverでは、0.000で切り捨てて登録されました。演算の際、一度decimal型で計算し、その結果を登録することで解決できました。Serverのnumeric型は精度を指定しなかった場合、numeric(18,0)となります。scale=0ですので整数しか扱えません。Serverにどのような方法でデータを渡したのかが言及されていませんが、渡す際に精度が指定されていなかったのだろうと推測します。C#のdecimal(.NETのSystem.Decimal)を精度ヒント無しで自動変換した、とか。クエリを発行すれば、データベースやテーブルの作成が可能です。