Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

преобразовать массив   Найти похожие ветки 

 
Nick-From ©   (2004-05-05 14:31) [0]

Есть массив вещественных чисел:
[0.1 0.12 0.123]
Как проще всего все числа массива догнать до целых, т.е. должно получиться:
[100 120 123]
я пока последовательно множу на 10 и проверяю весь массив на остаток от деления. Можт есть способ проще?


 
Nikolay M. ©   (2004-05-05 15:45) [1]

А проверить сначала каждый элемент на количество знаков после запятой и умножить потом на 10^макс.кол-во знаков - не проще? Только что будет, когда встретится 0.3333(3)? Да и про точность представления вещественных чисел тоже забывать нельзя: будет у тебя не 0.3, а 0.30000000001928374 - твои действия?


 
Palladin ©   (2004-05-05 15:47) [2]

перевести в String, убрать разделитель, добить с конца нулями все строки до наибольшей длинны и обратно в int... если массив огромный и точность бывает до 5 знаков, то прирост производительности обеспечен


 
Vlad Oshin ©   (2004-05-05 16:23) [3]

со стрингом долго работает, вроде
надо, имхо, посмотреть представление типа вещественного числа в памяти.
Далее определить самое длинное число, как если бы мы его представляли в стринге, так определим на что нужно множить


 
Palladin ©   (2004-05-05 16:28) [4]

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


 
Vlad Oshin ©   (2004-05-05 16:29) [5]


> при заполнении массива

точно!



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
14-1083481434
XIII
2004-05-02 11:03
2004.05.23
Зацените Сайтец http://TIMUR.NeT.RU


8-1078899334
Галинка
2004-03-10 09:15
2004.05.23
Как повернуть картинку на произвольный угол?


1-1084273112
Aleksandr
2004-05-11 14:58
2004.05.23
Как организовать зеркальную замену битов в байте?


8-1078566769
AlexV
2004-03-06 12:52
2004.05.23
Заливка TPanel иTButton текстурой.Пытаюсь сообразить прост-й скин


1-1084210589
Helpme
2004-05-10 21:36
2004.05.23
Найдите ошибку в этом коде