Convert float value to string
我有这样的财产:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public float Lat {
get {
float lat ;
if (!float.TryParse(hdnLat .Value, out lat ))
{
throw new NotImplementedException ();
}
return lat ;
}
set {
hdnLat .Value = value; // Line 43
}
} |
我从谷歌地图获得纬度和经度,从两个ASP.NET hiddenfield获得坐标。
我将纬度和经度作为浮点值存储在数据库中,所以我必须将其转换为浮点值,对吗?
如何将我的连载转换为正确的格式?
Visual Studio givs me此错误:
Can not implicitly convert type double to
string Line 43
我如何解决这个问题?
- 哪条线是43?
- 不要抛出NotImplementedException,除非您计划稍后实现它。
- 不要抛出NotImplementedException——这是当您不在接口中编写一个方法时使用的。使用argumentexception-这就是它的目的。
- @凯特:不,那不是为了这个。首先,不要这样做。如果不希望在接口中实现方法,则可能不应该实现该接口。如果你真的需要这样做,就抛出NotSupportedException。完成的代码不应引发NotImplementedException。这条规则没有例外。
- @马丁尼奥是的,我知道,我的意思是"在你实施之前,这就是为你准备的"。不管怎样,关键是"嘿,你的字符串不能解析成数字",而argumentexception是更好的选择
- @凯特:getter没有参数,所以argumentexception没有意义。你不应该从一个能手那里扔任何东西。但如果没有其他选择(但可能有),则此代码可能会引发FormatException(float.parse将引发此异常)。
- @凯特,@martinho:float.parse()在解析失败时抛出一个System.FormatException。我想这在这里也是合适的。
- 是的,FormatException是正确的选择(尽管,一般来说,martinho是正确的:getters不应该抛出异常)。但打电话给TryParse,如果失败了就扔,这没什么意义。这就是Parse方法已经为您所做的。
- @托德:这里的hdnLat是什么类型的?
由于hdnLat.Value是string类型,因此当您分配给它时,您分配的项目也必须是string类型。因此,如果要分配value,必须将其转换为string类型的可比较项。你可以这样做:
1
| hdnLat.Value = value.ToString(); |
这正是错误消息"无法将类型double隐式转换为字符串"试图告诉您的。你应该把这条信息理解为"我看到你正试图使用一个双精度字符串,而我期望它是一个字符串"。我试着想办法把它转换,但我不能。你能告诉我怎么转换它吗?"
- 你是第一个)。
- 真的。ToString()法5票赞成。
- @科迪:我认为,如果你把"" + value的2个赞成票和-
- @M4N:我的答案应该得到多少票:D
- @阿克拉姆:我认为只包含没有解释的代码的答案基本上是毫无价值的。因此,我认为他们不应该得到任何赞成票。据了解,根据我的心情,我对这些答案投了反对票。他们实际上并不告诉提问者问题是什么,而是鼓励人们直接将代码复制并粘贴到源代码中,这绝对不是一个好主意。好的答案和好的问题一样。他们解释问题是什么,是什么导致的,只有这样才能解决问题。
- @科迪·格雷:我完全同意你的看法。老实说,我还没读过问题体!!
- @科迪:这就是为什么当我看到问题的答案可能只是一段没有解释的代码时,我会畏缩的原因,比如"我需要一个regex来做x,请给我写下来。"
- @马蒂尼奥:我已经不再畏缩不前了,现在我们每天都有50张接近的选票。不过,当我过去常常精疲力竭的时候,那真是一场闹剧。
- 编辑解释"为什么"。