没法,数据库本身的存储方式。cast(列名 as varchar)

解决方案 »

  1.   

    本来就是这样的,如果你要显示为0.5,你只能是转换为varchar了
      

  2.   

    但我需要他来记总分啊!转换为varchar,能正确的统计出来吗?
      

  3.   

    呵呵,这个问题我在开始做程序的时候也碰到。解决方法:
    1、把字段类型改成字符型。
    2、不改类型的话,就在前台处理。写个函数处理。如果 value<1 则数字转字符,在字符前加“0”,然后字符转数字
       (汗!!着方法好象比较)
      

  4.   

    但我需要他来记总分啊!转换为varchar,能正确的统计出来吗?可以计算!
      

  5.   

    declare @a dec(5,1),@b dec(5,1)
    set @a=0.5
    set @b=80.5
    select 原a=@a,新a=convert(varchar,@a),b=@b,'a+b'=convert(varchar,@a)+@b--结果:
    原a      新a                             b       a+b      
    ------- ------------------------------ ------- -------- 
    .5      0.5                            80.5    81.0
      

  6.   

    numeric也一样,刚看错了
    declare @a numeric(5,1),@b numeric(5,1)
    set @a=0.5
    set @b=80.5
    select 原a=@a,新a=convert(varchar,@a),b=@b,'a+b'=convert(varchar,@a)+@b--结果:
    原a      新a                             b       a+b      
    ------- ------------------------------ ------- -------- 
    .5      0.5                            80.5    81.0
      

  7.   

    在ASP里
    比如:formatnumber(Expression,2,-1)FormatNumber函数
          描述返回一个数字格式的表达式。语法FormatNumber(Expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])FormatNumber函数语法有如下几部分:部分 描述 
    Expression 必需的。要被格式化的表达式。 
    NumDigitsAfterDecimal 可选的。数字值,表示小数点右边的显示位数。缺省值为–1,表示使用计算机的区域设置值。 
    IncludeLeadingDigit 可选的。三态常数,表示小数点前是否显示零。关于其值,请参阅“设置值”部分。 
    UseParensForNegativeNumbers 可选的。三态常数,表示是否把负数值放在圆括号内。关于其值,请参阅“设置值”部分。 
    GroupDigits 可选的。的三态常数,表示是否用组分隔符对数字分组,组分隔符在计算机的区域设置值中指定。关于其值,请参阅“设置值”部分。 
    设置值IncludeLeadingDigit、UseParensForNegativeNumbers和GroupDigits参数的设置值如下:常数 值 描述 
    TristateTrue –1 True 
    TristateFalse 0 False 
    TristateUseDefault –2 用计算机区域设置值中的设置值。 
    说明当忽略一个或多个选项参数时,被忽略的参数值由计算机的区域设置值提供。注意   所有设置值信息都来自“区域设置”的“数字”选项卡。
      

  8.   

    在设计表时允许小数点后的数字,比如: numeric(18,2),就会有小数点后位数字.