Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Функция DelZero(Float:floatval)

OKStyle

Адвокат по делам семейным
Administrator
Wiki Team
Регистрация
4 Мар 2011
Сообщения
7,094
Лучшие ответы
226
Репутация
2,455
Награды
11
На "офе" ope задал вопрос:
Функция возвращает число с плавающей точкой. Вопрос: как отрезать ненужные нули? Например я получил 15.140, нужно чтобы осталось только 15.14, или через эту же функцию я получил 1.200 -нужно оставить только 1.2. В совершенстве еще хотелось бы узнать, - как точку в таком числе заменить на запятую?

Я накидал вот такую функцию:

PHP:
stock DelZero(Float:floatval)
{
    new string[8];
    format(string, sizeof(string), "%f", floatval);
    new dotpos = strfind(string, ".");
    strdel(string, dotpos, dotpos + 1);
    strins(string, ",", dotpos, sizeof(string));
    for(new i = strlen(string); i != dotpos + 1; i--)
    {
        if(strcmp(string[i], "0") != 0) break;
        strdel(string, i, i + 1);
    }
    return string;
}
Работает только с положительными числами, отсутствует проверка на MAXFLOAT, но думаю, она бессмысленна, т.к. обрабатывается только 5 знаков после точки (запятой). С отрицательными числами почему-то фигня: отнимает 1 единицу разряда только.

PHP:
main()
{
    new Float:d = 1.20500;
    printf("%s", DelZero(d));
}
 
Последнее редактирование модератором:
Сверху Снизу