Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
6-1080829133
serg128
2004-04-01 18:18
2004.05.23
Как переслать сокетом файл большого размера (1Мб)?


1-1084353607
andrey__
2004-05-12 13:20
2004.05.23
TServiceApplication - как завершить приложение


14-1083494958
Piter
2004-05-02 14:49
2004.05.23
Мания величия?


11-1071331854
Vladimir Kladov
2003-12-13 19:10
2004.05.23
{$IFDEF } в секции finalizationn


3-1082975508
Timon
2004-04-26 14:31
2004.05.23
Опять DBGRID. Помогите пожалуйста. Как сделать в DBGRID-е чтобы




   Наверх