|
|
|
| Задача.
есть числа - 0.003, 0.0056,0.0.0028, 0.0086
и есть постоянная m = 0.004
Нужно наиболее оптимальным способом найти максимально приблеженное число из представленных к числу m, в данном случае это число 0.003 | |
|
|
|
|
|
|
|
для: admiral
(22.02.2012 в 04:17)
| |
<script>
var n = [0.003, 0.0056, 0, 0.0028, 0.0086], m = 0.004;
for (var j = 0, D, mD, R, lj = n.length; j < lj; j++)
{D = Math.abs (n [j] - m); if (!self.mD || D < mD) {R = j; mD = D}}
alert (n [R]);
</script>
|
| |
|
|
|
|
|
|
|
для: ЯСА
(22.02.2012 в 04:49)
| | Благодарю! | |
|
|
|
|
|
|
|
для: ЯСА
(22.02.2012 в 04:49)
| | <script>
var n = [0.0042,0.0013,0.0011,0.0094,0.0056,0.0044,0,0024], m = 0.004;
for (var j = 0, D, mD, R, lj = n.length; j < lj; j++)
{D = Math.abs (n [j] - m); if (!self.mD || D < mD) {R = j; mD = D}}
alert (n [R]);
</script>
Странно, но подсчет неверный исхдя из вашего примера | |
|
|
|
|
|
|
|
для: admiral
(22.02.2012 в 05:23)
| | 1. Запятые и точки не путайте.
2. Для удобства визуальной проверки записывайте исходные данные в столбик:
var n = [0.0042, //у меня именно этот результат. Что не так?
0.0013,
0.0011,
0.0094,
0.0056,
0.0044,
0,0024], //тут одно число или два?
m = 0.004;
|
| |
|
|
|