【发布时间】:2020-11-23 00:04:56
【问题描述】:
在 Unity 中,我想将数据库表中的鼠标灵敏度值 (float) 保存为 REAL。但由于某种原因,它会舍入该值,所以如果我有值 1.0,它会节省 1.0,但如果是,例如 0.65,它会节省 0.0。这是查询:
foreach (KeyValuePair<string, float> kv in mouse)
{
MyDataBase.ExecuteQueryWithoutAnswer("UPDATE Mouse SET value = '" + kv.Value.ToString() + "' WHERE option = '" + kv.Key + "'");
}
其他类型保存正确。
【问题讨论】:
-
尝试使用参数而不是依赖于文化的字符串表示形式
-
您正在将数值转换为字符串。然后将此字符串传递给需要将该字符串存储在数字字段中的数据库引擎,以便执行另一次转换。最终结果是一个错误。相反,如果您使用正确数据类型的参数并将正确的数据类型作为值传递,则不会执行转换,也不会误解小数分隔符。