C# 如何四舍五入到最接近的整数

C# 如何四舍五入到最接近的整数,c#,datetime,nullable,minute,C#,Datetime,Nullable,Minute,我在一个可为空的DateTime上调用ToMinutes(),它返回一个double,但如果它不是空的,我希望将它转换为最接近的整数 示例:从1534488.74496255到1534489 我怎样才能做到这一点呢?这可能是你想要的东西吗?这将返回最接近的较低整数 int timeAsWholeMinute = (int) Math.Floor(timeInMinutes); 或者,如果只需要最接近的整数: int timeAsWholeMinute = (int) Math.Round(ti

我在一个可为空的DateTime上调用ToMinutes(),它返回一个double,但如果它不是空的,我希望将它转换为最接近的整数

示例:从
1534488.74496255
1534489


我怎样才能做到这一点呢?

这可能是你想要的东西吗?这将返回最接近的较低整数

int timeAsWholeMinute = (int) Math.Floor(timeInMinutes);
或者,如果只需要最接近的整数:

int timeAsWholeMinute = (int) Math.Round(timeInMinutes);

当你想转一圈时,只需转一圈:

  double source = 1534488.74496255;

  // if you want double (i.e. floating point result)
  double result = Math.Round(source);

  // if you want integer outcome (and source is positive)
  int minutes = (int) (source + 0.5);

  // if you want integer outcome (general case)  
  int minutes = (int) (source > 0 ? source + 0.5 : source - 0.5);

那些是~1534489毫秒?哪个是25.57481667分钟,那么是26分钟?或者该值代表什么?或者要将字符串“1534488.74496255”转换为1534489(整数)分钟?是字符串吗?你想要哪种型号的?哪种格式?什么文化?示例?
Math.Round(源代码)
?或者
(int)(源代码+0.5)
?这个数字代表什么?你能告诉我们你期望得到多少分钟的回报吗?@ifelabolz你能至少在你的问题中解释一下你是如何得到这个
DateTime
对象的吗?你怎么知道它能容纳这么多分钟?我似乎找不到这些琐碎的东西。谢谢,这很有效,我没有意识到ToMinutes()返回了双精度。:)@伊夫·拉波尔兹:不客气!请你也修改一下你的问题好吗?我的意思是,你有
DateTime
字段,然后你调用
ToMinutes()
,它返回
double
,返回的
double
应该被四舍五入。
(int)(source+0.5)
当你有负数时会做坏事
(int)Math.Round(source)
似乎是一个更好的选择。@Jim Mischel:谢谢!接得好!我已经编辑了答案