sql server中decimal数据如何在CListCtrl上显示?
CString delay;
m_delayset.GetFieldValue(4,varValue);//时延
delay.Format(_T("%lf"),varValue.m_lVal);
m_ctrldelay.SetItemText(i,4,delay);
数据库中decimal型数据0.023475,但是在列表控件中显示的是0.000000.
请问这是怎么回事?
m_delayset是派生自CRcordSet的类,m_ctrldelay是CListCtrl类。

解决方案 »

  1.   

    decimal 和 numeric (Transact-SQL)带固定精度和小数位数的数值数据类型。decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )] 
    固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。p(精度) 
    最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。s (小数位数) 
    小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。精度  存储字节数  
    1 - 9
     5
     
    10-19
     9
     
    20-28
     13
     
    29-38
     17