既然lz 结贴了,我就分享一下我的做法好了using System;
using System.Collections.Generic;
using System.Text;
using System.Data;namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
String[] Units = new String[] { "件", "盒", "瓶" }; DataTable DT = new DataTable();
DT.Columns.Add(new DataColumn());
DT.Rows.Add(new Object[] { "3件10盒" });
DT.Rows.Add(new Object[] { "10件6盒" });
DT.Rows.Add(new Object[] { "1件9瓶" }); double Value = 0;
foreach (DataRow DR in DT.Rows)
{
String CalString = DR[0].ToString();
for (int i = 0; i < Units.Length; i++)
{
double M = 1;
for (int j = 0; j < i; j++)
M *= 10000;
CalString = CalString.Replace(Units[i], "*" + M.ToString() + "+");
}
if (CalString.Length > 0)
CalString = CalString.Remove(CalString.Length - 1);
Value += Convert.ToDouble(DT.Compute(CalString, String.Empty));
} for (int i = 0; i < Units.Length; i++)
{
Console.Write((int)Value % (10000) + Units[i]);
Value /= 10000;
}
Console.Read();
}
}
}
// 输出: 14件16盒9瓶
using System.Collections.Generic;
using System.Text;
using System.Data;namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
String[] Units = new String[] { "件", "盒", "瓶" }; DataTable DT = new DataTable();
DT.Columns.Add(new DataColumn());
DT.Rows.Add(new Object[] { "3件10盒" });
DT.Rows.Add(new Object[] { "10件6盒" });
DT.Rows.Add(new Object[] { "1件9瓶" }); double Value = 0;
foreach (DataRow DR in DT.Rows)
{
String CalString = DR[0].ToString();
for (int i = 0; i < Units.Length; i++)
{
double M = 1;
for (int j = 0; j < i; j++)
M *= 10000;
CalString = CalString.Replace(Units[i], "*" + M.ToString() + "+");
}
if (CalString.Length > 0)
CalString = CalString.Remove(CalString.Length - 1);
Value += Convert.ToDouble(DT.Compute(CalString, String.Empty));
} for (int i = 0; i < Units.Length; i++)
{
Console.Write((int)Value % (10000) + Units[i]);
Value /= 10000;
}
Console.Read();
}
}
}
// 输出: 14件16盒9瓶
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货