|
Редактирование значения типа float, Как организовать такое? |
|
|
|
 |
Ответов
|
Feb 13 2009, 09:12
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
для редактирования float с заранее известным числом знаков после точки и перед нею, я бы сделал почти так, как предлагал singlskv, только перед началом редактирвоания переводил бы float в целое (для двух знаков после точки - умножением на 100) и редактировал бы именно в целых числах (запрет "переноса разряда" легко и незатратно по памяти реализуется), а точку "пририсовывал" бы только при выводе. после завершения редактирования деление на 100 (или на что там умножали вначале) - и получите готовое число. плюсы: 1. функция редактирования любого знака может быть одной для любого разряда: получает "порядок" изменяемого разряда, реализуя контроль и блокировку перехода 9-->10. при этом сама процедура редактирования красиво раскладывается на элементарные действия: выбор разряда - изменение 2. целочисленная арифметика - быстро и экономно 3. не надо делать ресурсоемкие преобразования для вывода float - опять же экономия памяти минусы: - назовите сами
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Feb 13 2009, 10:52
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(ARV @ Feb 13 2009, 11:12)  минусы: - назовите сами  Сам так делал, еще на асме и на 74 пике  У меня была структура "параметры редактирования", которая включала в себя: - количество знакомест при редактировании - количество знаков после запятой (если 0 - точка не выводится) - знаковое/беззнаковое число - минимальное и максимальное допустимое значение. Если при сохранении число выходит за диапазон - сохранение не происходит, выдается злобный сигнал, число заменяется максимумом или минимумом, пользователю предлагается продолжить редактирование. Функции передавался указатель на число и указатель на такую структуру. Таким образом одна процедура использовалась для редактирования самых разнообразных параметров. Недостаток только один - этот метод не подходит, если положение точки не фиксировано.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
clpe Редактирование значения типа float Feb 11 2009, 20:48 Alex11 А в чем проблема? Чтобы все не сбивалось на экране... Feb 11 2009, 20:54 clpe Цитата(Alex11 @ Feb 11 2009, 23:54) А в ч... Feb 11 2009, 21:00  Methane Цитата(clpe @ Feb 11 2009, 23:00) а алгор... Feb 11 2009, 21:24   clpe Цитата(Methane @ Feb 12 2009, 00:24) Я де... Feb 11 2009, 21:26    Methane Цитата(clpe @ Feb 11 2009, 23:26) Ага при... Feb 11 2009, 21:28     nl5 Цитата(Methane @ Feb 11 2009, 14:28) Так ... Feb 11 2009, 21:34      clpe Цитата(nl5 @ Feb 12 2009, 00:34) Иногда д... Feb 11 2009, 21:39       demiurg_spb Преобразуйте число в строку функцией ftoa или snpr... Feb 11 2009, 22:19        clpe Цитата(demiurg_spb @ Feb 12 2009, 01:19) ... Feb 11 2009, 22:27         demiurg_spb Цитата(clpe @ Feb 12 2009, 01:27) В редак... Feb 11 2009, 22:32          clpe Цитата(demiurg_spb @ Feb 12 2009, 01:32) ... Feb 11 2009, 22:34           MrYuran Цитата(clpe @ Feb 12 2009, 01:34) Просто ... Feb 12 2009, 05:14         rezident Цитата(clpe @ Feb 12 2009, 03:27) В редак... Feb 12 2009, 00:17          clpe Цитата(rezident @ Feb 12 2009, 03:17) При... Feb 12 2009, 10:37           _Pasha Цитата(clpe @ Feb 12 2009, 13:37) "П... Feb 12 2009, 10:50            clpe Цитата(_Pasha @ Feb 12 2009, 13:50) В пре... Feb 12 2009, 10:56        singlskv Цитата(demiurg_spb @ Feb 12 2009, 01:19) ... Feb 12 2009, 21:33         SysRq Цитата(singlskv @ Feb 13 2009, 00:33) Код... Feb 12 2009, 23:38         _Pasha Цитата(singlskv @ Feb 13 2009, 01:33) Это... Feb 13 2009, 07:12          singlskv Цитата(_Pasha @ Feb 13 2009, 10:12) Там г... Feb 13 2009, 07:32           _Pasha Цитата(singlskv @ Feb 13 2009, 11:32) Ну ... Feb 13 2009, 07:53            singlskv Цитата(_Pasha @ Feb 13 2009, 10:53) В общ... Feb 13 2009, 08:03         demiurg_spb Цитата(singlskv @ Feb 13 2009, 00:33) ИМХ... Feb 13 2009, 08:37          singlskv Цитата(demiurg_spb @ Feb 13 2009, 11:37) ... Feb 13 2009, 08:41           demiurg_spb Цитата(singlskv @ Feb 13 2009, 11:41) А к... Feb 13 2009, 11:57            singlskv Цитата(demiurg_spb @ Feb 13 2009, 14:57) ... Feb 13 2009, 16:28             ARV Цитата(singlskv @ Feb 13 2009, 19:28) Ну ... Feb 13 2009, 16:58              singlskv Цитата(ARV @ Feb 13 2009, 19:58) это непр... Feb 13 2009, 17:52      Methane Цитата(nl5 @ Feb 11 2009, 23:34) ...и тем... Feb 11 2009, 23:34 Dog Pawlowa Цитата(clpe @ Feb 11 2009, 23:48) необход... Feb 13 2009, 07:32 MrYuran Цитата(Dog Pawlowa @ Feb 13 2009, 10:32) ... Feb 13 2009, 07:40 singlskv Цитата(Dog Pawlowa @ Feb 13 2009, 10:32) ... Feb 13 2009, 07:47 _Pasha Цитата(ARV @ Feb 13 2009, 13:12) минусы:
... Feb 13 2009, 09:21  _Pasha Цитата(Сергей Борщ @ Feb 13 2009, 14:52) ... Feb 13 2009, 11:42 _Pasha А чтоб не спорить, должно быть правило: система па... Feb 13 2009, 17:58 singlskv Цитата(_Pasha @ Feb 13 2009, 20:58) А что... Feb 13 2009, 18:13  _Pasha Цитата(singlskv @ Feb 13 2009, 21:13) Ok,... Feb 13 2009, 18:21   singlskv Цитата(_Pasha @ Feb 13 2009, 21:21) В так... Feb 13 2009, 18:30    _Pasha Цитата(singlskv @ Feb 13 2009, 21:30) пол... Feb 13 2009, 18:39     singlskv Цитата(_Pasha @ Feb 13 2009, 21:39) Отред... Feb 13 2009, 18:53     ARV Цитата(_Pasha @ Feb 13 2009, 21:39) Отред... Feb 13 2009, 18:54      clpe Цитата(ARV @ Feb 13 2009, 21:54) +5! ... Feb 13 2009, 22:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|