错误来自浮点数据类型

时间:2013-06-13 11:00:23

标签: asp.net-mvc razor floating-point

我在数据库中定义了纬度和经度。两者都是Float数据类型。我想在地图上显示地理信息。我的问题是当我使用@Model(我使用Asp.net MVC和Razor语法)将这些信息传递给变量时。代码是

var latitude = @Model.Latitude;
var longitude = @Model.Longitude;

它显示每条线后面有一条红色的红线。当我在那里徘徊鼠标时,它显示为

Double?Dinner.Latitude
Double?Dinner.Longitude

我对此一无所知。然后我尝试转换像

这样的数据类型
var latitude = (double)(@Model.Latitude);
var latitude = (double)(@Model.Longitude);

红色的卷曲线确实消失了,但它告诉了我

"Undefined Double"

谁知道为什么?

由于

2 个答案:

答案 0 :(得分:1)

decimal latitude = Convert.ToDecimal(Model.Latitude);
decimal longitude= Convert.ToDecimal(Model.Longitude);

答案 1 :(得分:0)

当您使用剃刀范围时,无需使用@ keyworkd来访问服务器端值。只是尝试打开一个剃刀块并设置变量,试试这个:

@{

  var latitude = (double)Model.Latitude;
  var longitude= (double)Model.Longitude;

}

然后展示它,使用@ razor keyworkd:

<p>@latitude</p>
<p>@longitude</p>

您也可以使用double类型的ToString()方法格式化此值:

<p>@latitude.ToString("0.000")</p>