解决方案 »
- DataTableCollection ??
- 这样的查询语句要怎么写?
- 弹出下载框,并重定向
- 有一个项目突然不能调试,也不能运行了,怎么回事。
- Asp.net Webform的ajax效率感觉好低,自己手写JS又太麻烦,有什么好的JS开发框架吗?
- 如何实现自动下载
- 小弟初学.Net 遇到问题,困扰我几天了,发个帖问问,麻烦高手解决一下,谢谢
- 请问哪块有好的blog建站源码下载?另外,请给个意见,我应该如何做个好点的blog
- 提一个怪异的问题
- 怎么把数据库内容导出到word(没分了,谢谢帮帮我。)
- =========在winform中循环控件的问题,请问怎么查子控件呢?============
- asp.net树形菜单问题?
ASP.NET程序员现在这么贱了?
我认为一个会增删查改 会用sqlhelper 会百度 google会ctrl+c ctrl+v 的,基本算一个能做事的程序员了
我说的可是上海这种一线城市,还算稍微正规一点的民营企业,那些皮包企业不在此列
一个普通的只会整点页面和稍微懂点数据库常识的的ASP.NET程序员就是这个价3500-4500。。
SET @STR1=SUBSTRING(@STR,1,CHARINDEX('[',@STR)-1)
SET @STR2=SUBSTRING(@STR,CHARINDEX(']',@STR)+1,LEN(@STR)-CHARINDEX(']',@STR))SELECT @STR=SUBSTRING(@STR,CHARINDEX('[',@STR)+1,CHARINDEX(']',@STR)-CHARINDEX('[',@STR)-1)--CREATE TABLE #T(COL VARCHAR(10))
INSERT #T EXEC('SELECT '+@STR+'')SELECT @STR=@STR1+COL+@STR2 FROM #TSELECT @STR=REPLACE(REPLACE(@STR,'{','('),'}',')')EXEC('SELECT '+@STR+'')(所影响的行数为 1 行)
-----------
22
SQL做的,不过精度很难控制
SET @STR='1+6/3+{1*3+5+[(9-1)/3+3]}+2+(5+3)/2'
SELECT @STR=REPLACE(REPLACE(REPLACE(REPLACE(@STR,'{','('),'}',')'),'[','('),']',')')
EXEC('SELECT '+@STR+'')
-----------
22
把所有的数字都用一个double来替代,然后输入数字,计算。
应该就可以了。ps:没测过,不知道对不对。salary小于3000.
{
string bz = "";
str = (((((str.Replace(" ", "")).Replace("{","(")).Replace("[","(")).Replace("}",")")).Replace("]",")")).Trim('=');
str1 = str.Split('(');
if (str1.Length == 1) return jisuan( str);
for (int i = 0; i < str1.Length; i++)
{
if (str1[i] != "")
{
for (int j = 0; j < str1[i].Length; j++)
{
if (str1[i].Substring(j, 1).Equals(")"))
{
bz = str1[i].Substring(0, j);
if (jisuan(bz) == "")
return "";
str1[i] = jisuan(bz) + str1[i].Substring(j+1);
str = "";
str = str1[0];
for (int k = 1; k < str1.Length; k++)
{
if (k == i)
str = str + str1[k];
else
str = str + "(" + str1[k];
}
return size(str);
}
}
}
}
return "";
}
private string jisuan(string str)
{
char[] c = str.ToCharArray();
int bz = 0;
string[] strsz=new string[c.Length];
for (int i = 0; i < c.Length; i++)
{
if (c[i].Equals('+') || c[i].Equals('-') || c[i].Equals('*') || c[i].Equals('/'))
{
bz++;
strsz[bz] = c[i].ToString();
bz++;
}
else
{
if (bz == c.Length)
return "";
strsz[bz] = strsz[bz] + c[i].ToString();
}
}
if (bz == 0) return str;
if (strsz.Length < bz + 1)
return "";
for (int i = 0; i < bz+1; i++)
{
if (strsz[i] == "*")
{
strsz[i] = (double.Parse(strsz[i - 1]) * double.Parse(strsz[i + 1])).ToString();
strsz[i - 1] = "";
strsz[i + 1] = "";
str = "";
for (int j = 0; j < bz + 1; j++)
{
str = str + strsz[j];
}
return jisuan(str);
}
}
for (int i = 0; i < bz + 1; i++)
{
if (strsz[i] == "/")
{
if (strsz[i + 1] == "0")
{
MessageBox.Show("除数不能为零!");
return "";
}
strsz[i] = (double.Parse(strsz[i - 1]) / double.Parse(strsz[i + 1])).ToString();
strsz[i - 1] = "";
strsz[i + 1] = "";
str = "";
for (int j = 0; j < bz + 1; j++)
{
str = str + strsz[j];
}
return jisuan(str);
}
}
for (int i = 0; i < bz + 1; i++)
{
if (strsz[i] == "+")
{
strsz[i] = (double.Parse(strsz[i - 1]) + double.Parse(strsz[i + 1])).ToString();
strsz[i - 1] = "";
strsz[i + 1] = "";
str = "";
for (int j = 0; j < bz + 1; j++)
{
str = str + strsz[j];
}
return jisuan(str);
}
}
for (int i = 0; i < bz + 1; i++)
{
if (strsz[i] == "-")
{
strsz[i] = (double.Parse(strsz[i - 1]) - double.Parse(strsz[i + 1])).ToString();
strsz[i - 1] = "";
strsz[i + 1] = "";
str = "";
for (int j = 0; j < bz + 1; j++)
{
str = str + strsz[j];
}
return jisuan(str);
}
}
return "";
}
object o = new DataTable().Compute(str.Replace("=", "").Replace("{", "(").Replace("}", ")").Replace("[", "(").Replace("]", ")"), "");
Console.WriteLine(Convert.ToDouble(o).ToString("F2"));