Задать вопрос
  • Почему PHP выполняет математические операции неправильно?

    Коротко - потому что IEEE 754

    Выполняет он математические операции правильно, но некоторые числа компьютер просто не способен представить со 100% точностью, тк для них нужно было бы бесконечное количество памяти.

    Точно также, как мы не можем записать все цифры числа 1/3 в десятичной системе, точно также и компьютер иногда не может записать все цифры в двоичной.

    Если ты работаешь с деньгами, то тогда используй то, что делают все банки - представляй суммы денег не как дробные числа, а как целые. Например место 1.5 рублей записывай как 150 копеек. Запятую добавишь при выводе человеку.
    btw тут в комментах пишут, что для денег тоже есть паттерн по-лучше конкретно для php.

    Если при делении у тебя получилось дробное количество копеек - округляй так, как велит закон.

    Если ты делаешь какие-то математические вычисления - возможно тебе нужны рациональные числа.
    Не знаю, что обычно для этого в пхп используют, но нагуглил https://github.com/webgriffe/rational
    https://github.com/markrogoyski/math-php

    Но в случае с целыми числами ты всё равно можешь упереться в ограничение на максимальное число, а в случае с рациональными числами ты получишь очень сильную просадку в производительности.

    Если тебе критически важна скорость, а точность - не так важна, то оставайся на IEEE754 и просто округляй то N значимых цифр (обычно больше 5 цифр мало кому нужно)
    Ответ написан
    13 комментариев
  • Возможно ли создать Telegram Web App C#?

    Возможно.
    Используй Blazor для этого.
    Ответ написан
    Комментировать
  • Полезные инструменты для проверки мошенников?

    Сначала дай определение мошенническому сайту.

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

    В общем случае, таких средств нет - нужно самостоятельно воспользоваться с сайтом, столкнуться с фактом мошенничества и далее доказать в суде, что владелец сайта - мошенник.

    Для случаев, когда мошеннический сайт выдаёт себя за настоящий - достаточно просто глаз и внимательного прочтения адресной строки.

    Для случаев, когда мошеннический сайт выдаёт себя за несуществующий интернет-магазин - надо смотреть, что этот магазин реально существует. Тут может сайт налоговой и всякие сервисы для проверки контрагентов типа контур фокуса.
    Ответ написан
    Комментировать
  • Как открыть ГосУслуги из WebView?

    Не знаю, как это в вебвью, но на андроиде это можно через интент сделать:
    https://stackoverflow.com/questions/3872063/how-to...
    Ответ написан
    Комментировать
  • Как скопировать сайт с помощью PowerShell на Windows 11?

    Скачай wget и используй его также, как и на линуксе
    Ответ написан
  • Насколько хороша Cortana встроенная в Win11 для распознавания русской речи?

    Нет в Windows 11 больше никакой кортаны, а когда была - русский язык она не поддерживала, ни на win8, ни на win10
    https://support.microsoft.com/en-us/topic/end-of-s...

    Есть voice access, но он также не поддерживает русский язык, совсем (предлагает использовать английский, пока не появится поддержка русского)
    https://support.microsoft.com/en-us/topic/use-voic...


    Voice access is currently available in the following languages and dialects: English–US, English–UK, English–India, English–New Zealand, English–Canada, English–Australia, Spanish–Spain, Spanish–Mexico, German–Germany, French–France, and French–Canada.

    Поддерживается только Английский, Испанский, Немецкий, Французский.
    Ответ написан
    6 комментариев
  • Как вшить игру на godot в существующий сайт?

    Принципиально добавление игры на сайт на gh pages ничем не отличается от добавления на сайт на какой-нибудь csm.
    Ответ написан
    Комментировать
  • Реально ли студенту найти работу, связанную с сетями?

    Разрешаю, иди теперь пиши резюме и собеседуйся
    Ответ написан
    Комментировать
  • Телеграм биткоин кошелёк пустой в блокчейне почему?

    Ну в общем-то в комментах все возможные проблемы отметили:
    1. Возможно кинул барыга
    2. Возможно вознаграждение за транзакцию вписали не достаточно большую и теперь транзакция зависла и долго будет ждать фиксации
    3. Кошелёк сомнительный
    4. Смотреть надо на blockchain explorer по хешу транзакции

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

    UPD а ларчик просто открывался. Кошелёк в телеге, что логично, кастодиальный и номера счетов существуют только в рамках кошелька.
    Ответ написан
    8 комментариев
  • Доменные споры, киберсквоттинг, ценообразование доменов: как это работает?

    1. Договоренности с IANA
    2. Никак, да и зачем?
    3. Окей гугл "whois ai.com"
    4. Это действительно такая большая проблема, что её нужно обязательно решать? Да и проблема ли вообще?

    Реальный киберсквоттинг - это когда регистрируют домен под названием какой-нибудь торговой марки/компании до того, как она зарегистрирует. Такие домены вполне успешно забирают в судебном порядке.
    Ответ написан
    2 комментария
  • Можно ли в C# как-нибудь объединить оператор неявного преобразования и метод расширения в одной записи?

    Нельзя. И если у вас возникает такое желание - вероятно у вас где-то архитектура потекла.
    Ответ написан
    Комментировать
  • Как выбрать идеальный умный замок?

    Судя по вашему предыдущему вопросу, вам нужен не умный замок, а СКУД.

    Ни один из выбранных вами замков не отвечает требованию "работа в -30" а также они оба не смогут выполнить другое требование "открытие по коду" и "открытие по отпечатку" когда похолодает или пойдет дождь/наберётся конденсат. (У сяоми даже явно сказано, что конденсат запрещён. А на улице утром, особенно после дождя, будьте уверены, что конденсат будет).

    При установке на улицу рассчитывай только на разблокировку по NFC или через приложение.

    Работу в минус 30 производитель не гарантирует и даже не гарантирует, что откроется механический замок.
    Уверены, что хотите играть в лотерею "а нужно ли мне будет зимой доставать фен и размораживать замок, чтобы попасть внутрь"?
    Ответ написан
    1 комментарий
  • Фронтенд - дизайн или программирование?

    За дизайн отвечает дизайнер.
    Фронтенд разработчик отвечает за то, как при помощи кода получить нужную картинку и поведение.

    У разработчика кроме собственно "рисования" кодом есть ещё много умственной работы о том, как лучше выстроить архитектуру приложения, как сделать так, чтобы разные люди на протяжении многих лет могли его разрабатывать и поддерживать без очень уж большого количества матерных слов, как сделать всё это надежным и быстрым, и так далее.

    Вы же не говорите, что работа строителя гуманитарная и художественная, не смотря на то что он точно также при помощи выданных инструментов и чертежей/дизайн-проекта добивается нужного внешнего вида, который придумал дизайнер/архитектор?
    Ответ написан
    3 комментария
  • Есть ли способ преобразовать объект к типу?

    Во-первых, в C# нет такой операции, как "связывание переменной с указателем".
    object x = i; // Это называется "боксинг" или же "упаковка". _ЗНАЧЕНИЕ_ переменной i копируется в кучу и возвращается ссылка на это значение (object)

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

    Но! Можно приблизиться к этому через женерики и рефлексию. Дорого, неудобно, и не ясно, зачем нужно.
    Если ты подскажешь, что ты планируешь дальше делать с j - тогда будет более полезный код.

    using System;
    
    static class App {
        public static void Main() {
            var i = 999;
            var t = i.GetType();
            var x = (object) i;
    
            var doSomethingMethod = typeof(Helper).GetMethod(nameof(Helper.DoSomething));
            var doSomethingIntMethod = doSomethingMethod!.MakeGenericMethod(typeof(int));
    
            doSomethingIntMethod.Invoke(null, new[]{x});
        }
    }
    public static class Helper {
            public static void DoSomething<T>(object x) {
                var j = (T) x;
                // далее работаем
                Console.WriteLine($"{typeof(T)} {j}"); // System.Int32 999           
            }
    }

    Если это как-то связано с предыдущим вопросом, то советую остановиться и очень хорошо подумать.
    Ответ написан
  • Предоставляет ли какой-либо банк API для получения информации о поступающих платежах на личный счет клиента банка?

    Вроде нигде нет API, тк это практически не востребовано и при этом требует дополнительных ресурсов, но почти все позволяют получать выписку по операциям.

    В ТБанке можно выписку получить в csv, excel или OFX.
    В десктопной версии заходишь в список операций и там в правой части иконка скачивания "выгрузка операций".

    В принципе если тебе не нужно в реальном времени знать обо всех операциях, то этого должно хватить (например для планирования личного бюджета и аналитики)
    Ответ написан
  • Программа для скриншотов без прав администратора существует?

    ShareX имеет портативную версию
    Ответ написан
    Комментировать
  • Существуют ли сервисы по рассылке однотипных, но неодинаковых писем, не спам?

    Используйте любой сервис для массовых рассылок на почту.
    Практически все имеют шаблоны для рассылок.
    Рассылайте не одновременно все, а размазывайте на несколько часов, если это возможно
    Ответ написан
    Комментировать
  • Как 16-ричный октет стринг из UTF-8 преобразовать в windows-1251?


    я понимаю, что JAVA оперирует строками в формате UTF-8

    А вот и не угадал. В жаве строки UTF-16.
    Хотя вопрос вроде по JavaScript


    Как мне на выходе получить строку в правильной кодировке windows-1251

    Судя по данным - тебе нужно наоборот.
    На входе у тебя строка в win1251, а преобразовать нужно в нормальную строку.

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

    Шаг первый:
    Читаем hex и складываем байты в ArrayBuffer
    https://stackoverflow.com/questions/43131242/how-t...

    Шаг второй:
    При помощи TextDecoder декодируем байты из cp1251
    https://stackoverflow.com/questions/17191945/conve...
    Ответ написан
  • Можно ли создать андроид приложение на c++?

    Можно. qt умеет компилироваться под android.
    https://doc.qt.io/qt-6/android.html
    Ссылку легко найти по запросу "qt android"

    На питоне есть kivy, а есть ли аналог у c?

    А при чём тут си, если изначально в вопросе речь про кресты и куте?
    Ответ написан
    3 комментария
  • ИИ на стадии обучения программированию. Стоит ли?

    ИИ не позволяет тебе научиться двум очень важным навыкам:
    1. Поиск и фактчекинг информации
    2. Дебаггинг, самостоятельный поиск и решение проблем.

    "Ломание головы, почему код не работает" - это важная часть учёбы.

    Любая LLM - это не всезнающий джин и у всех есть свои неприятные ограничения с которыми ты рано или поздно столкнёшься.

    И RAG, всякие MoE, подключение поисковика не всегда могут помочь.

    Без навыков самостоятельного поиска ты даже не поймёшь, что нейронка тебе нагаллюцинировала ересь.

    Я не говорю, что тебе нужно срочно отказываться и прекращать использовать chatgpt. Это точно такой же инструмент, как и поисковик, всякие QnA, stackoverfloe и тд, со своими ограничениями и нишами, где он хорошо работает.
    Ответ написан
    Комментировать