我的问题是:
    有一个string str="0.23"
    数据库对应的字段price 类型float
    用 float.parse(str)之后把字段写入数据库,发现数据是0.2300000004172325
    我想让他在写入数据库的时候只要两位小数,请问用哪个函数?
谢谢

解决方案 »

  1.   

    float类型是无法限定其小数位数的,因为根据ieee745标准0.23在二进制下可能是个无理数
      

  2.   

    string str = "0.23";
    string strSql = "INSERT INTO 数据表名称(price) VALUES('" + str + "')";
      

  3.   

    应该是INSERT INTO 数据表名称(price) VALUES(str)就行了
      

  4.   

    It should be determined by database. restrict column's format which precision should be setted 2.
      

  5.   

    string str="0.23"
    Math.Round(float.parse(str),2)
      

  6.   

    我是楼主
    谢谢大家的帮助。
    我正在尝试在数据库中限制小数为数的方法,发现小数位数那一栏是灰色的,不允许设置(菜,没办法)请问在那里设置?
    谢谢================================================================
    此帖通过csdn小助手回复。
        CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
    脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
    快,产生的流量更小。    下载地址:http://qqwwee.com/csdn.rar
    ================================================================
      

  7.   

    你干脆将price类型设为decimal就可以设置了
      

  8.   

    我知道了
    谢谢
    稍后结帖================================================================
    此帖通过csdn小助手回复。
        CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
    脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
    快,产生的流量更小。    下载地址:http://qqwwee.com/csdn.rar
    ================================================================
      

  9.   

    罗索一句,可以自己定义数据类型,例子如下:
    EXEC sp_addtype N't_Price', N'numeric(24,2)', N'not null'
    GO
    dan
      

  10.   

    但是有时候需要四舍五入阿,保留两位小数拉,需要用到STR和ROUND,楼上已有人给出例子