我不明白为什么这段代码会这样。我必须返回特定格式的字符串。好像当我包含“ |”时字符串上的字符,其后的数字将被修改。
为什么会这样?是“ |”不知何故再次转换了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。我该如何解决?
答案 0 :(得分:0)
由于该c#似乎不是问题,因此我现在将其关闭。看来NSClient ++会在返回该值后对其进行更改。
我不确定,我会在适当的部分发布它。
谢谢大家!