存储在数据库中的小数作为四舍五入的小数返回到 .net 配置文件
Decimal stored in database returned to .net Profile as rounded decimal
我有一个自定义的 .net 配置文件,它在 SQL Table
中存储一个十进制值
Column decCode = Numeric (3,1)
存储的值为0.8
我在 web.config 中的个人资料 属性 是
<add name="decCode" provider="SqlProfile" customProviderData="decCode,Decimal" type="System.Decimal" />
当我执行 ProfileBase.GetPropertyValue("decCode")
时,值似乎总是向上舍入。 (ProfileBase 不是继承的,它是标准的 aspnet 配置文件 class)
举个例子:
(在 DB 中为 0.8)
Dim dec As Decimal = CType(pc.GetPropertyValue("decCode"), Decimal) === 1D
Dim a1 As String = String.Format("{0}: {1}", "G", dec.ToString("G")) === 1
Dim a2 As String = String.Format("{0}: {1}", "C", dec.ToString("C")) === £1.00
Dim a3 As String = String.Format("{0}: {1}", "E04", dec.ToString("E04")) === 1.0000E+000
Dim a4 As String = String.Format("{0}: {1}", "F", dec.ToString("F")) === 1.00
Dim a5 As String = String.Format("{0}: {1}", "N", dec.ToString("N")) === 1.00
Dim a6 As String = String.Format("{0}: {1}", "P", dec.ToString("P")) === 100.00%
Dim a7 As String = dec.ToString() === 1
Dim a8 As String = dec.ToString("0.0") === 1.0
好像我使用 linq 获得 decCode 的值
return (_context.pUserProfiles.Where(p => p.UserId == GUID).FirstOrDefault().decCode).ToString()
我得到 0.8
我怎样才能使用 ProfileBase.GetPropertyValue
来 return 我得到正确的小数点?
您必须将 "customProviderData" 和 "cType" 中的 DECIMAL 更改为 DOUBLE,如下所示:
<add name="decCode" provider="SqlProfile" customProviderData="decCode,Double" type="System.Double" />
和
Dim dec As Double = CType(pc.GetPropertyValue("decCode"), Double)
我有一个自定义的 .net 配置文件,它在 SQL Table
中存储一个十进制值Column decCode = Numeric (3,1)
存储的值为0.8
我在 web.config 中的个人资料 属性 是
<add name="decCode" provider="SqlProfile" customProviderData="decCode,Decimal" type="System.Decimal" />
当我执行 ProfileBase.GetPropertyValue("decCode")
时,值似乎总是向上舍入。 (ProfileBase 不是继承的,它是标准的 aspnet 配置文件 class)
举个例子: (在 DB 中为 0.8)
Dim dec As Decimal = CType(pc.GetPropertyValue("decCode"), Decimal) === 1D
Dim a1 As String = String.Format("{0}: {1}", "G", dec.ToString("G")) === 1
Dim a2 As String = String.Format("{0}: {1}", "C", dec.ToString("C")) === £1.00
Dim a3 As String = String.Format("{0}: {1}", "E04", dec.ToString("E04")) === 1.0000E+000
Dim a4 As String = String.Format("{0}: {1}", "F", dec.ToString("F")) === 1.00
Dim a5 As String = String.Format("{0}: {1}", "N", dec.ToString("N")) === 1.00
Dim a6 As String = String.Format("{0}: {1}", "P", dec.ToString("P")) === 100.00%
Dim a7 As String = dec.ToString() === 1
Dim a8 As String = dec.ToString("0.0") === 1.0
好像我使用 linq 获得 decCode 的值
return (_context.pUserProfiles.Where(p => p.UserId == GUID).FirstOrDefault().decCode).ToString()
我得到 0.8
我怎样才能使用 ProfileBase.GetPropertyValue
来 return 我得到正确的小数点?
您必须将 "customProviderData" 和 "cType" 中的 DECIMAL 更改为 DOUBLE,如下所示:
<add name="decCode" provider="SqlProfile" customProviderData="decCode,Double" type="System.Double" />
和
Dim dec As Double = CType(pc.GetPropertyValue("decCode"), Double)