【问题标题】:How to parse the values to string in Windows Phone?如何将值解析为 Windows Phone 中的字符串?
【发布时间】:2013-07-25 13:27:24
【问题描述】:

如何将这种双格式值(距离、卡路里)解析为字符串格式?它们被放在 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);
}

【问题讨论】:

  • 你想做什么,一旦它们成为 textBlocks 中的文本,将字符串值解析回双精度值?
  • @caschw :它们是双重格式。所以我需要将它们更改为字符串格式以将它们发布到下一个屏幕进行显示。

标签: c# .net windows-phone-7 xaml windows-phone-8


【解决方案1】:

你可以使用, 例如,

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。希望对你有帮助

【讨论】:

    【解决方案2】:

    处理这个问题的最好方法是做一个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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多