强大的模精度

问题描述

首先,一个例子:

  • 我的纬度/经度为(11.1,11.1),我想将其转换为度,分,秒格式。

我的代码

double degrees = 11.1;
double minutes = (degrees % 1) * 60;  // evaluates to 5.999999,should be 6.0
double seconds = (minutes % 1) * 60;  // evaluates to 59.999999,should be 0

string result = $"{Math.Floor(degrees)},{Math.Floor(minutes)},{Math.Round(seconds)}";
  • 结果是“ 11,5,60”而不是“ 11,6,0”

现在,我知道一般很难使用双除法,但是我发现如果重新计算等式:

double minutes = degrees * 60 % 60;  // evaluates to 6

我得到正确的答案。我的问题是,

方程的第二个版本在编程上是否更可靠?如果是这样,为什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)