DECIMAL для Pawn.
#1

Всем привет.
Из-за того что я использую для своего сервера центы испытываю проблемы с большими числами. Проблема в том что если у игрока 12345678.95$ в БД сохранится только 12345678.00. Что бы решить эту проблему я начал искать по форому и наткнулся на две темы: Надеялся что они исправят мою проблему, но не тут то было.

Подключил все инклуды с ссылок выше и еще одну функцию автором которая является eXeGOODER.
PHP Code:
#include <a_samp>
#include <sscanf2>
#include <cash>
main()
{
    new 
FloatfFloat 12345678.96;
    new 
dollarcent;
    
printf(FormatNumber(fFloat2,',','.')); //formatnumber
    
printf(FormatNumber(fFloat,0)); //formatnumber
    
    
DecimalPoint(fFloat); // Decimal Point
    
    
Cash_Truncate(fFloatdollarcent); //by eXeGOODER
    
    
printf("Simple: %.2f",fFloat); // Обычный Float
}
stock Cash_Truncate(Floatcash, &dollar, &cent)
{
    new 
tmp[16];
    
format(tmpsizeof tmp"%f"cash);
    
printf("\nCash_Truncate: %s",tmp);
    
    
sscanf(tmp,"p<.>dd",dollar,cent);
    
    
printf("Cash_Truncate: %d.%d\n",dollar,cent);
}
stock DecimalPoint(Float:money)
{
    new 
str[16];
    if(
money >= 0)
    {
            
format(strsizeof(str), "%.2f$"money);
            if(
1000 <= money 10000strins(str","2sizeof(str));
            else if(
10000 <= money 100000strins(str","3sizeof(str));
            else if(
100000 <= money 1000000strins(str","4sizeof(str));
            else if(
1000000 <= money 10000000) { strins(str","2sizeof(str)); strins(str","6sizeof(str)); }
            else if(
10000000 <= money 100000000) { strins(str","3sizeof(str)); strins(str","7sizeof(str)); }
            else if(
100000000 <= money 1000000000) { strins(str","4sizeof(str)); strins(str","8sizeof(str)); }
            else if(
money >= 1000000000) { strins(str","2sizeof(str)); strins(str","6sizeof(str)); strins(str","10sizeof(str)); }
            
printf("%.2f",money);
    }
    else
    {
            
format(strsizeof(str), "-%.2f$"money-(money*2));
            if(-
1000 >= money > -10000strins(str","3sizeof(str));
            else if(-
10000 >= money > -100000strins(str","4sizeof(str));
            else if(-
100000 >= money > -1000000strins(str","5sizeof(str));
            else if(-
1000000 >= money > -10000000) { strins(str","3sizeof(str)); strins(str","7sizeof(str)); }
            else if(-
10000000 >= money > -100000000) { strins(str","4sizeof(str)); strins(str","8sizeof(str)); }
            else if(-
100000000 >= money > -1000000000) { strins(str","5sizeof(str)); strins(str","9sizeof(str)); }
            else if(
money <= -1000000000) { strins(str","3sizeof(str)); strins(str","7sizeof(str)); strins(str","11sizeof(str));}
    }
    return 
str;

На выходе мы получаем это:


Теперь уменьшаем число до 567891.34. На выходе получает это:

Уже всё по лучше.

Играя с числами я понял что после 7999999.74 ни одна из функций не выводит числа после точки.
Пример: 7999999.75 = 8000000.00

Вопрос: Можно ли как то сделать DECIMAL для PAWN что бы всё работало правильно?

P.S: Так-же есть вариант что при использования плагинов можно добиться нормальной работы Float-a, но у меня недостаточно знаний для этого.
Reply


Messages In This Thread
DECIMAL для Pawn. - by Johhnyllll - 04.07.2017, 12:16
Re: DECIMAL для Pawn. - by Mutha_X - 04.07.2017, 13:03
Re: DECIMAL для Pawn. - by Johhnyllll - 04.07.2017, 13:11
Re: DECIMAL для Pawn. - by stabker - 04.07.2017, 13:16
Re: DECIMAL для Pawn. - by Johhnyllll - 04.07.2017, 13:24
Re: DECIMAL для Pawn. - by Mutha_X - 04.07.2017, 13:51
Re: DECIMAL для Pawn. - by Johhnyllll - 04.07.2017, 14:37
Re: DECIMAL для Pawn. - by Stepashka - 04.07.2017, 15:36
Re: DECIMAL для Pawn. - by Mutha_X - 04.07.2017, 15:44
Re: DECIMAL для Pawn. - by Johhnyllll - 04.07.2017, 15:44
Re: DECIMAL для Pawn. - by ZiGGi - 04.07.2017, 19:11
Re: DECIMAL для Pawn. - by Johhnyllll - 04.07.2017, 20:18
Re: DECIMAL для Pawn. - by Johhnyllll - 05.07.2017, 09:21
Re: DECIMAL для Pawn. - by ZiGGi - 05.07.2017, 10:14
Re: DECIMAL для Pawn. - by Johhnyllll - 05.07.2017, 10:53
Re: DECIMAL для Pawn. - by Johhnyllll - 05.07.2017, 15:47
Re: DECIMAL для Pawn. - by ZiGGi - 05.07.2017, 17:00
Re: DECIMAL для Pawn. - by Johhnyllll - 05.07.2017, 17:22
Re: DECIMAL для Pawn. - by ZiGGi - 05.07.2017, 17:37
Re: DECIMAL для Pawn. - by Johhnyllll - 05.07.2017, 18:05
Re: DECIMAL для Pawn. - by Eims - 06.07.2017, 10:26
Re: DECIMAL для Pawn. - by ZiGGi - 06.07.2017, 11:06
Re: DECIMAL для Pawn. - by Eims - 06.07.2017, 11:46
Re: DECIMAL для Pawn. - by Johhnyllll - 06.07.2017, 12:09
Re: DECIMAL для Pawn. - by Eims - 06.07.2017, 12:29

Forum Jump:


Users browsing this thread: 15 Guest(s)