使用 Dapper DynamicParameters 保存到 MS SQL 后双值下降比例值
double value Dropping scale value after saving to MS SQL using Dapper DynamicParameters
我缺少一个秤(请参见下面的示例图片)。
即使我在我的动态参数中指定了精度和比例,我仍然丢失了最后一个非零值。
不确定我错过了什么。
const string insertSql = @"insert into DATATABLE (FEES_VALUE) VALUES (@DataValue)";
var doubleValue = 0.06930846118065210000;
var parameters = new DynamicParameters();
parameters.Add("DataValue", doubleValue, dbType: DbType.Decimal, precision: 28, scale: 20);
using (var conn = new SqlConnection(connectionstring))
{
var data = conn.Execute(query, parameters, commandType: CommandType.Text, commandTimeout: 600);
}
更新:
显然,这不是 Dapper 的问题。
这是我使用的数据类型。
下面是我详细测试后的结果(感谢Cameron的建议)
十进制 0.00058235001858449700
作为双 0.00058235001858450000
将数据类型改为十进制而不是双精度解决了我的问题
我缺少一个秤(请参见下面的示例图片)。 即使我在我的动态参数中指定了精度和比例,我仍然丢失了最后一个非零值。
不确定我错过了什么。
const string insertSql = @"insert into DATATABLE (FEES_VALUE) VALUES (@DataValue)";
var doubleValue = 0.06930846118065210000;
var parameters = new DynamicParameters();
parameters.Add("DataValue", doubleValue, dbType: DbType.Decimal, precision: 28, scale: 20);
using (var conn = new SqlConnection(connectionstring))
{
var data = conn.Execute(query, parameters, commandType: CommandType.Text, commandTimeout: 600);
}
更新: 显然,这不是 Dapper 的问题。 这是我使用的数据类型。 下面是我详细测试后的结果(感谢Cameron的建议)
十进制 0.00058235001858449700
作为双 0.00058235001858450000
将数据类型改为十进制而不是双精度解决了我的问题