_day.Latitude =“ 64.128339”
_day.Longitude =“ -20.995595”
public override void Prepare(ItineraryDay day)
{
_day = day;
var isParseLatitude = double.TryParse(_day.Latitude, out var latitude);
var isParseLongitude = double.TryParse(_day.Longitude, out var longitude);
_dayPositionInfo = new DayPositionInfo(
latitude,
longitude,
_day.RouteName);
}
如您在图片中所见,“纬度”和“经度”是有效的双精度值,但“解析”无效,并返回false? 为什么,我什么都不懂?
答案 0 :(得分:3)
我怀疑您当前的区域性没有使用.
字符作为小数点分隔符,这就是Double.TryParse
返回false
的原因。
如果您知道小数点分隔符始终是.
,则可以执行以下操作:
bool isValidLatitude = Double.TryParse("64.128", NumberStyles.Any, CultureInfo.InvariantCulture, out double latitude);
PS:如果需要检查当前区域性的小数点是什么,请使用
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator
答案 1 :(得分:-1)
Convert.ToDouble("64.128339");
double.Parse("64.128339");