用零点填充零点

时间:2011-10-30 13:46:38

标签: c# .net math

我正在尝试使用大于或小于值的粗略来比较纬度和经度。我需要能够传递纬度,经度和要舍入的数字位数。如果我有这些值,例如:

18.363285   -67.18024
18.448619   -67.13422        <----- Only second value matched
18.498987   -67.13699        <----- Both values matched 
18.465162   -67.141486
18.182151   -66.9588

选择中间作为匹配的中间,我想传入18.49(1234567)作为纬度,-67.13(1234567)作为经度, 2 作为要舍入的小数。我打算将给定的纬度和经度向下舍入 2 位置以获得下限,然后将 0.02 添加到此处以获得上限。

我被困在最后一部分。我想不出一个数学函数,它以4作为输入并返回0.00004。

除非我过于复杂,否则有一种简单的方法可以匹配公差范围内的一组值。

编辑:例如,我需要传递这些数字并获取这些值:

In   Out
1   0.01
2   0.001
3   0.0001
4   0.00001
5   0.000001
6   0.0000001

2 个答案:

答案 0 :(得分:4)

使用Math.Abs​​:

if (Math.Abs(value1 - value2) <= 0.01) {
    // close enough
    // etc...
}

从Math.Pow计算分数(10,-numberOfDigitsInTheFraction);

答案 1 :(得分:1)

    private double Calc(int places)
    {
        return 1 / (Math.Pow(10, places + 1));
    }