时间跨度.总天数 - 无法将双精度转换为字符串



我一直在谷歌和这里寻找解决方案,但找不到任何关于它的东西。我试图在日期之间找到差异。我写了类似的东西

TimeSpan difference = timealarm.Subtract(DateTime.Now);

其中时间警报DateTime.Now + 3 hours.这条线似乎很好。我正在尝试使用

MessageBox.Show(difference.TotalMinutes);

但随后我收到标题中提到的错误:

无法将类型"双精度"转换为"字符串"。Visual Studio 显示错误 在这里 - 差异。总分钟数。

我是 .net 和 c# 的新手,我想这很简单。

MessageBox.Show接受字符串。difference.TotalMinutes的类型是double.没有从doublestring的隐式转换,但您可以调用ToString方法:

MessageBox.Show(difference.TotalMinutes.ToString());

这将仅使用正在运行的默认区域性来转换值。(因此,它是否使用逗号或句点作为小数点分隔符将取决于您的系统。

通常,当您收到这样的错误时,您应该检查:

  • 您的"源"类型(在这种情况下double(是您所期望的吗?如果没有,也许你应该改变你正在计算的内容。
  • 您的"目标"类型(在这种情况下string(是您所期望的吗?如果没有,也许你应该改变你所说的,或者你如何使用这个值。

如果这两个类型都有意义,那么您需要考虑如何从"源"类型转换为"目标"类型 - 这将取决于上下文。

消息框需要一个字符串,并且您的值是双精度值 你只需要像这样将双精度转换为字符串

MessageBox.Show(difference.TotalMinutes.ToString());

最新更新