字符串连接会在'|'时修改双精度数字已包含在内

时间:2019-06-05 12:31:53

标签: c# .net

我不明白为什么这段代码会这样。我必须返回特定格式的字符串。好像当我包含“ |”时字符串上的字符,其后的数字将被修改。

为什么会这样?是“ |”不知何故再次转换了double值?

static int Main(string[] args) {
  .........

  connectionString = connectionString.Replace("'master'", databaseName);
  var watch = System.Diagnostics.Stopwatch.StartNew();

  using (SqlConnection connection = new SqlConnection(connectionString))
    {
      connection.Open();
    }

  watch.Stop();

  string spentTimeString = String.Format("{0:0.##}", watch.ElapsedMilliseconds / 1000f);

  string msg = $"Connection Time " + spentTimeString + "s.";
  string perfData = "'connection_time'=" + String.Format("{0:0.##}", watch.ElapsedMilliseconds / 1000f);
  string result = Ok(msg, perfData);

  ......
}


public static string Ok(string message, string perfData)
{
    Console.WriteLine($"Msg: {message}");
    Console.WriteLine($"PerfData: {perfData}");
    string result = string.Concat("OK: ", message, "|", perfData);
    Console.WriteLine($"Result: {result}");
    return result;
}

这是我看到的控制台输出:
消息:连接时间 0.42 s。
PerfData:'connection_time'= 0.42
结果:OK:连接时间为0.42s。|'connection_time'= 0.41999

您可以清楚地看到串联后如何将0.42 get转换为0.41999。我该如何解决?

1 个答案:

答案 0 :(得分:0)

由于该c#似乎不是问题,因此我现在将其关闭。看来NSClient ++会在返回该值后对其进行更改。

我不确定,我会在适当的部分发布它。

谢谢大家!