当我从文本框(txtMaterialUnitPrice,txtMaterialUnitPrice)输入十进制数字时,如4,5和6,5,总价格应该是29,25但它来自29.这是我的代码。
private void btnSale_Click(object sender, EventArgs e)
{
salesTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
materialPrice = Decimal.Parse(txtMaterialUnitPrice.Text);
purchasedWeight = Decimal.Parse(txtMaterialUnitPrice.Text);
totalPrice = materialPrice * purchasedWeight;
curSales = Sales.Insert(customerID, customerNameSurname, customerPlate, materialID, materialType, materialPrice, purchasedWeight, totalPrice, salesTime, txtExplanation.Text);
LoadAll();
}
这是插入部分。
public static Sales Insert(int cID, String cNameSurname, String cPlate, int mID, String mName, Decimal mPrice, Decimal pWeight, Decimal totalPrice, String dt, String explanation)
{
String query = string.Format("INSERT INTO sales(CustomerID,CustomerNameSurname,CustomerPlate,MaterialID,MaterialType,MaterialPrice,PurchasedWeight,TotalPrice,SalesDate,Explanation) VALUES ('{0}', '{1}' , '{2}', '{3}','{4}','{5}','{6}','{7}','{8}','{9}')", cID, cNameSurname, cPlate, mID, mName, mPrice, pWeight, cleanAmount, dt, explanation);
MySqlCommand cmd = new MySqlCommand(query, DB.dbConn);
DB.dbConn.Open();
cmd.ExecuteNonQuery();
int id = (int)cmd.LastInsertedId;
Sales sale = new Sales(id, cID, cNameSurname, cPlate, mID, mName, mPrice, pWeight, totalPrice, dt, explanation);
DB.dbConn.Close();
return sale;
}
答案 0 :(得分:0)
可能有两个原因 1.您的表格栏' TotalPrice'是INT类型而不是DECIMAL 要么 2.您的销售'对象类属性' TotalPrice'是整数或不存储小数点的东西。
答案 1 :(得分:0)
您的解决方案中的问题是","标志。 C#中的逗号是你使用"的十进制值。"标志,这就是它结合它的原因
//例 //这将起作用
十进制测试= 7.5;
//这不起作用
十进制测试= 7,5;
更改小数点指针符号