Калькулятор оценки стоимости

Оценивайте затраты проекта с помощью минимального/максимального/оценочного диапазона для нескольких позиций.

Как использовать

  1. Введите описание для каждой позиции затрат.
  2. Заполните минимальное, максимальное и расчетное значения для каждой строки.
  3. Добавьте больше строк с помощью кнопки «Добавить строку».
  4. Строка «Итоги» внизу автоматически суммирует все три столбца.
  5. Используйте «Копировать сводку», чтобы скопировать смету в буфер обмена.

Функции

  1. Несколько позиций со столбцами мин/макс/оценка
  2. Строка итогов в реальном времени
  3. Добавляйте или удаляйте строки динамически
  4. Скопировать отформатированное резюме в буфер обмена
  5. Очистить все строки одним щелчком мыши
  6. 100% поддержка браузера — данные остаются на вашем устройстве

Часто задаваемые вопросы

Что такое калькулятор сметы?

Он позволяет добавлять в проект несколько позиций, каждая из которых имеет минимальную, максимальную и расчетную стоимость. Он суммирует все три столбца, поэтому вы можете сразу увидеть лучший вариант, наихудший случай и ожидаемую стоимость.

Как добавить больше строк?

Нажмите кнопку «Добавить строку», чтобы добавить новую позицию. Вы можете добавить столько, сколько вам нужно.

Могу ли я скопировать сводную смету?

Да — нажмите «Копировать сводку», чтобы скопировать форматированную текстовую сводку всех позиций и итоговых сумм в буфер обмена.

Сохранены ли мои данные?

Нет. Все данные существуют только в памяти вашего браузера и теряются при закрытии или обновлении страницы. Ничего не отправляется ни на один сервер.

Technical Details

The cost estimator maintains an array of row objects in React state, each containing description, min, max, and estimate strings. Column totals are computed on each render by reducing the array with parseFloat, defaulting to 0 for empty fields. Rows are added by appending new objects with crypto.getRandomValues()-based IDs; deletion uses Array.filter. The copy-summary function serializes the table to a plain-text columnar format using String.padEnd/padStart for alignment.