Вниз
Скачать: 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
7-1082362957
fantomas
2004-04-19 12:22
2004.05.23
Работа с Com портом


1-1084303001
I.Ru.Ru
2004-05-11 23:16
2004.05.23
программное выделение ячеек в Excel


3-1083324948
}|{yk
2004-04-30 15:35
2004.05.23
Поддержка типа BIGINT в библиотеках доступа к Firebird


1-1083940236
Dll
2004-05-07 18:30
2004.05.23
Проблемка с asm


1-1083964926
MAXHO-2
2004-05-08 01:22
2004.05.23
Как перехватить закрытие главного окна?




   Наверх