Последний раз редактировалось DeimoS; 20.12.2019 в 13:31. Причина: Объединил сообщения
Как я уже написал в предыдущем сообщении, они, в любом случае, будут медленнее, ибо, банально, будет совершено гораздо больше действий, нежели при обычном сравнении.
Во-первых, реализация вещественных чисел в компьютерах такова, что значения после запятой не отличается особой точностью (подробнее), так что математически высчитать подобное будет довольно проблематично. Гораздо проще перевести число в строку и уже работать со строкой.
Во-вторых, количество символов после запятой ограничено тем, сколько этих самых символов ты хочешь вывести. На деле, в большинстве случаев, количество символов после запятой может быть бесконечно большим (даже если, например, после 15-го символа начнутся нули, это не гарантирует то, что после 25-го символа не появится какая-либо ещё цифра).
Исходя из всего этого, в случае с вещественными числами, лучше не определять количество символов после запятой, а задавать то, сколько этих самых символов ты хочешь видеть.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
дело в том, что я пытаюсь реализовать функционал экспорта большого числа в массив из натуральных:
В связи с чем, мне нужно узнать сколько чисел после запятой, ХОТЯ БЫ в передаваемой переменной, чтобы можно было разместить их в массиве натуральныхКод HTML:stock EXPORT_NUMBER_TO_ARRAY(number, &output[]) { for(new _ENTA_ITERATOR = _GET_NUMBER_OF_DIGITS(number); _ENTA_ITERATOR; _ENTA_ITERATOR--) { output[_ENTA_ITERATOR] = (number - ( number % (_ENTA_ITERATOR*10) ) ) / (10*_ENTA_ITERATOR); } }
Повторяю: их может быть БЕСКОНЕЧНО МНОГО. Почитай о том, что такое вещественные числа, если забыл школьный курс алгебры.
Иррациональные числа также могут рассматриваться через бесконечные непрерывные дроби. Следствием доказательства Кантора является то, что действительные числа неисчислимы, а рациональные счетны, отсюда следует, что почти все действительные числа иррациональны.
Да и в любом случае ты будешь ограничен размером массива, в который происходит запись. Так по этому размеру и ориентируйся, копируя такое же число символов. Хотя не совсем представляю зачем такое может пригодиться...
Последний раз редактировалось DeimoS; 20.12.2019 в 13:53.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
я понимаю, что их может быть сколько угодно, ну допустим я сделаю ограничение на последний порядок (например третий), и все таки, если числа есть только до второго, то есть:
Как мне узнать количество числе после запятой в объявленной части, то есть если я беру уже getPlayerpos, то понятно, что там доли могут быть бесконечно маленькие, но хотя бы узнать есть ли там числа до третьего порядка или это вот это вообще:Код HTML:new Float:a = 0.01;
1234.1
2312.2
плюс, вроде бы многие(все) float при форматировании ограничиваются в порядке: %0.f
Последний раз редактировалось MassonNN; 20.12.2019 в 13:54.
Параллельно записывая число как строку и работая с этой строкой впоследствии.
Математически - никак. Вот ответ почему:
main() { new Float:a = 0.01; }
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Не совсем понимаю о какой "не очень хорошей" реализации строк идёт речь, ну да не суть.
Другого варианта нет. И нет его ни в одном другом ЯП (кроме совсем уж специфичных случаев), ибо это ограничение не только самих языков (компиляторов), но и железа (принципов работы CPU/FPU).
Лучше внятно объясни для чего именно тебе понадобилась такая функция. Может всё можно реализовать гораздо более человечным образом, не изобретая велосипед.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)