Tag: precision

SQLCLR项目中的SqlDecimal问题

使用SqlDecimals时,我有一些意想不到的结果。 最后,当划分2个SqlDecimal时,似乎可以归结为缩放问题。 c#示例代码如下所示: [Microsoft.SqlServer.Server.SqlFunction] [return: SqlFacet(Precision = 38, Scale = 8)] public static SqlDecimal fn_divide([SqlFacet(Precision = 38, Scale = 8)]SqlDecimal x, [SqlFacet(Precision = 38, Scale = 8)]SqlDecimal y) { var r = SqlDecimal.Divide(@x, @y); return r; } SQL测试代码如下所示: DECLARE @x numeric(38, 8), @y numeric(38, 8) SELECT @x = Replicate(‘1’, 28) + ‘.12345678’, @y = ‘0.25896314’ […]

C#将20位精度双精度转换为字符串并再次返回

在C#中。 我有一个具有20位精度的双精度(我从数据库中提取)。 在Visual Studio中(使用QuickWatch)我可以看到double的值为= 0.00034101243963859839。 我希望在文本框中显示此值,然后在我取出它并将其转换回double时使其具有相同的值。 但我总是失去最后两位数 我尝试过以下方法: double d = 0.00034101243963859839; string s = d.ToString(); string s2 = d.ToString(“F20”); string s3 = d.ToString(“0.00000000000000000000”); — 20 0’s string s4 = (d*100d).ToString(); 在这些情况下: s = 0.000341012439638598 s2 = 0.00034101243963859800 s3 = 0.00034101243963859800 s4 = 0.0341012439638598 我希望能够做到以下几点: double d = 0.00034101243963859839; string s = d.ToString(); //… double […]