declare @v nvarchar(50) = '21.89777777777777777777777777'
select convert(decimal(18,8),round(@v,3))
四捨五入後に小数値を切り捨てることができません。たとえば、上記の質問では、21.8980000 が返されます。
The resulting output must be like
21.898 when rounded by select convert(decimal(18,8),round(@v,3))
and 21.8988 when rounded by round(@v,4)
ラウンド値を取得するストアド プロシージャを作成しました。また、丸めた後に先頭のゼロを削除する必要があります。毎回精度を変更するのではなく、動的でなければなりません