C# 更新条目时出错。xx.xxx超出范围
我有一张有柱子的桌子 名称:变体_标记C# 更新条目时出错。xx.xxx超出范围,c#,asp.net,database,entity-framework,C#,Asp.net,Database,Entity Framework,我有一张有柱子的桌子 名称:变体_标记 数据类型:数字(4,3) 我试着给它加上10.000的价值 我得到了错误 更新条目时出错 10.000超出范围 不应该是这样,我还有其他数据类型相同的列和添加数字的过程相同,他们没有抱怨 守则: decimal strippedMarkRate = decimal.Round(0, 3); if (MarkUpTextBox.Text != string.Empty) strippedMarkRate = decim
数据类型:数字(4,3)
我试着给它加上10.000的价值 我得到了错误 更新条目时出错
10.000超出范围 不应该是这样,我还有其他数据类型相同的列和添加数字的过程相同,他们没有抱怨 守则:
decimal strippedMarkRate = decimal.Round(0, 3);
if (MarkUpTextBox.Text != string.Empty)
strippedMarkRate = decimal.Round(decimal.Parse(toolbox.removeChars(MarkUpTextBox.Text)), 3);
variant_markup = strippedMarkRate;
toolbox.removeChars函数只是从框中删除任何不是数字或小数点的字符,有没有可能用正则表达式实现这一点?也许您的删除字符没有达到您需要的效果?关于你的最后一个问题,用foreach语句删除不允许的字符可能会更快,如下所示:
StringBuilder sb = new StringBuilder();
foreach(char c in value)
{
if(char.IsDigit(c) || c == '.')
{
sb.append(c);
}
}
return sb.ToString();
如果要插入10.000,则需要将数据类型定义为数字(5,3)。数字类型声明中的第一个数字是数字中的最大位数(精度)。在10.000的情况下,有5个 十进制[(p[,s])]和数字[(p[,s])] p(精度)小数点左侧和右侧可存储的最大小数位数总数。精度 必须是从1到最大精度38之间的值。这个 默认精度为18 s(刻度)小数点右侧可存储的最大小数位数。比例必须是从0到p的值。 仅当指定了精度时,才能指定比例。默认值
标度为0;因此,0您的代码不涉及
variant\u markup
,因此我有点困惑问题出在哪里。如果它没有执行预期的操作,那么在尝试解析为十进制时,我不会遇到异常吗????