0

如何将此双格式值(距离、卡路里)解析为字符串格式?它们被放在 textBlock 中。需要在按钮点击事件中将它们转换为字符串。

private void PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
        {            
            var coord = new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude);
     var calories = caloriesLabel.Text;
                var previousPoint = _line.Path.Last();
                var distance = coord.GetDistanceTo(previousPoint);
                var millisPerKilometer = (1000.0 / distance) * (System.Environment.TickCount - _previousPositionChangeTick);
                _kilometres += distance / 1000.0;               
                paceLabel.Text = TimeSpan.FromMilliseconds(millisPerKilometer).ToString(@"mm\:ss");
                distanceLabel.Text = string.Format("{0:f2} km", _kilometres);
                caloriesLabel.Text = string.Format("{0:f0}", _kilometres * 65);
}
4

2 回答 2

0

你可以使用,例如,

double d = 13.000;
string.Format("{0:0.000}km", d)

或者您可以将格式参数传递给 ToString 方法。

string s = d.ToString("0.000 km");
Console.WriteLine(s);

如果“0.000”未作为参数传递,则仅显示 13。希望对您有所帮助

于 2013-07-25T14:01:31.530 回答
0

处理此问题的最佳方法是执行 tryparse。

String Dist, Cals;

bool distParsed = Double.TryParse(distance,out Dist);
bool calsParsed = Double.TryParse(calories,out Cals);

if(!distParsed||!calseParsed)
{
  String message = !distParsed ? "Distance failed to parse" : "";
  if(message.Trim().Length==0)
    message = !calsParsed ? "Calories failed to parse" : "";
  MessageBox.Show(message);
}
于 2013-07-25T16:46:53.087 回答