0

我有一个 asp.net 4 文本框控件,它的文本由一些 java 脚本动态填充。确切地说是谷歌地图调用。它给了我从一点到另一点的里程。当文本显示时,它显示“234 mi”我需要删除此文本的“mi”部分,因为文本正在转换为 Int32 更新我的数据库中的表。

基本上我只能有一个INT。文本框中没有其他内容。我如何摆脱文本末尾的“mi”?

感谢 C# EB

4

3 回答 3

1

在回发中,在保存之前,您可以:

var saveValue = Int32.Parse(tbTarget.Text.Replace("mi", string.Empty).Trim());
于 2012-06-23T23:35:08.913 回答
0

一个简单的String.Substring作品也:

String leftPart = TxtMileAge.Text.Substring(0, txt.IndexOf(' '));
int mileAge = int.Parse(leftPart);

这将检索0 - indexOfWhiteSpaceString范围内的部分并将其转换为int

编辑:由于该值可以有小数位(正如您所评论的那样),您需要将其解析为double,将其四舍五入,然后将其转换为int

var txtEstDistance = new TextBox() { Text = "40.2 mi" };
String leftPart = txtEstDistance.Text.Substring(0, txtEstDistance.Text.IndexOf(' '));
double distanceMiles = double.Parse(leftPart, System.Globalization.CultureInfo.InvariantCulture);
int oDdstanceMiles = (int)Math.Round(distanceMiles, MidpointRounding.AwayFromZero);
于 2012-06-23T23:36:47.763 回答
0

如果您使用可变长度的字符(例如有人输入英里),那么您必须对字符串(字符数组)执行 foreach 并检查每个字符的 isumeric。

于 2012-06-23T23:39:09.777 回答