首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中float与数据库中float解决办法

2012-02-02 
C#中float与数据库中float用的是C#2003 和SqlServer 2000在数据库中定义一个表create table SBLX(MC VARCH

C#中float与数据库中float
用的是C#2003 和SqlServer 2000
在数据库中定义一个表
create table SBLX
(
MC VARCHAR(30),
FLOAT FKJ
)
为这个表增加一个数据
INSERT INTO SBLX(MC)
VALUES('china')

新建一个存储过程
CREATE PROCEDURE SBLX_update
@MC VARCHAR(30),
@FKJ FLOAT
AS
UPDATE SBLX
SET FKJ = @FKJ
WHERE MC = @MC

在C#中运用这个存储过程
SqlConnection conn = new SqlConnection (@"server = (local); user=sa;password=000000;" + "Database = jsjxywz");
conn.Open();
SqlCommand com = new SqlCommand("SBLX_update",conn);
com.CommandType = CommandType.StoredProcedure;
com.Parameters.Add("@MC",SqlDbType.VarChar);
com.Parameters.Add("@KJ",SqlDbType.Float);
string mc = "china";
float kj = 3.4f;
com.Parameters["@MC"].Value = mc;
com.Parameters["@KJ"].Value = kj;
SqlDataReader dr = com.ExecuteReader();
dr.Close();
conn.Close();


运行后的结果怎么是在数据库中SBLX表中MC为china的那行的FKJ的数据是3.40000009536743
我想让它显示为3.4
我该怎么在存储过程中使用了??

[解决办法]
两边的数据精度不一样。

数据库中的 float 翻译到 C# 后,应该是 double 类型
[解决办法]
如果仅仅是显示

使用

float i = 2.344234234554345;
i.ToString("#0.0");

热点排行