【发布时间】:2013-03-12 08:59:27
【问题描述】:
我在c#中有这个问题,我想将一个字符串转换为double。
textBoxKostOnderhoud.Text = "0.08";
kost.OnderhoudKost = double.Parse(textBoxKostOnderhoud.Text);
这会在我的数据库中生成 80.00,我不知道为什么。这个问题有解决办法吗?
这就是我将值添加到数据库 (mysql) 的方式
public bool insert(Kost kost)
{
string query = "INSERT INTO kost (wagenId, onderhoudKost, tolKost, bedrijfsVerzekering, autoVerzekering, ladingVerzekering, wegenBelasting, eurovignet, accountantKost, telefoonKost, documentenEnVergunningen, onvoorzien, overige, andere) VALUES('" + kost.WagenId + "', '" + kost.OnderhoudKost + "', '" + kost.TolKost + "', '" + kost.BedrijfsVerzekering + "', '" + kost.AutoVerzekering + "', '" + kost.LadingVerzekering + "', '" + kost.WegenBelasting + "', '" + kost.Eurovignet + "', '" + kost.AccountantKost + "', '" + kost.TelefoonKost + "', '" + kost.DocumentenEnVergunningen + "', '" + kost.Onvoorzien + "', '" + kost.Overige + "', '" + kost.Andere + "')";
if (this.OpenConnection())
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//Create a data reader and Execute the command
cmd.ExecuteReader();
//close Connection
this.CloseConnection();
return true;
}
else
{
return false;
}
}
sql
CREATE TABLE IF NOT EXISTS `kost` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`wagenId` int(11) NOT NULL,
`onderhoudKost` double(10,2) NOT NULL,
`tolKost` double(10,2) NOT NULL,
`bedrijfsVerzekering` double(10,2) NOT NULL,
`autoVerzekering` double(10,2) NOT NULL,
`ladingVerzekering` double(10,2) NOT NULL,
`wegenBelasting` double(10,2) NOT NULL,
`eurovignet` double(10,2) NOT NULL,
`accountantKost` double(10,2) NOT NULL,
`telefoonKost` double(10,2) NOT NULL,
`documentenEnVergunningen` double(10,2) NOT NULL,
`onvoorzien` double(10,2) NOT NULL,
`overige` double(10,2) NOT NULL,
`andere` double(10,2) NOT NULL,
PRIMARY KEY (`id`),
KEY `wagenId` (`wagenId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=64 ;
【问题讨论】:
-
请提供重现观察到的行为的完整代码示例。你如何验证值是
80.00? -
如果你有“0,080”怎么办?这可能是文化问题,但我不确定,因为您没有提供太多信息。
-
"0,080"产生另一个值,我想? -
如果你使用 Convert.ToDouble 方法呢?编辑:没关系,不起作用。
-
我在我的 MYSQL 数据库中使用双精度,如果我尝试 0,080,我将在数据库中得到 0.000。
标签: c# mysql string parsing double