[Off] Valor mбximo de uma variavel
#1

Bem, acho que й um tipo de limite que nгo possui chance de aumentar, mas й estranho ter limite nй.
Muitos sabem que o valor mбximo de uma variбvel й 2147483647.

Teria alguma chance de aumentar esse valor por acaso?
Reply
#2

PHP Code:
printf("%d e %d"cellmaxcellmin); 
Tem sim, pode-se fazer uma gambiarra com strings. Mas em pawn puro, nгo hб como.
Reply
#3

Quote:
Originally Posted by ipsBruno
View Post
PHP Code:
printf("%d e %d"cellmaxcellmin); 
Tem sim, pode-se fazer uma gambiarra com strings. Mas em pawn puro, nгo hб como.
Por exemplo, dividir seus valores? Se bem que dividindo nгo teria como exibir o resultados de todos juntos (somando) pois assim passaria do limite .-. fail
Reply
#4

Na verdade nгo. Eu jб fiz algo assim em javascript. Basta simular como vocк dividiria no papel para a string. Entгo vai dividir nъmero por nъmero, que serб posteriormente exibido na string. Nгo hб manipulaзгo direta com um tipo de dado

Veja isto
https://sampforum.blast.hk/showthread.php?tid=372994

Й extremamente LENTO. Уbvio, mas quer o que, vocк estб calculando nъmeros acima de 200 bilhхes


Veja o exemplo dele:

11111111113579864223154367593477645692194543699367 3499346452359356363461
+ 99999999999999999916577655598765432112345678993456 9257124869357946783486
= 11111111111357986413973202319224307780454022269282 42756471321717303146947


Viu? Nъmeros gigantes. Obviamente o dele й adiзгo, o meu era divisгo em javascript. Que tem o mesmo limite de pawn.
Reply
#5

Aqui, achei meu cуdigo

pawn Code:
function divisao(s1, s2) {

    y = -1;

    if(s1.search(".") != -1) {
        y = parseInt("1"+ new Array(s1.substr(s1.search(".")).length).join("0"));
        s1 = ''+(parseFloat(s1) * y)
        s2 = ''+(parseFloat(s2) * y)       
    }

    n2 = parseInt(s2);
    ns = 0;

    resto = 0;
    conca = ""


    while(s1.length > 0) {     
       
        ns = parseInt(s1.substr(0,  s2.length))
        s1 = s1.substr(s2.length)      

        if(ns < n2 && s1.length > s2.length)  {
            ns = ns + "" + parseInt(s1.substr(0, 1))
            s1 = s1.substr(1)
        }
       
        if(resto) {
            ns = resto + "" + ns;
        }

        ns = parseInt(ns);
        resto = ns-(n2*((ns / n2) >> 0))
        conca += "" + ((ns / n2) >> 0);
   
    }
    s2 = "" + ((resto) / n2);
    return conca + s2.substr(1);
}
Aqui o meu teste:
alert(divisao("19646946996469469964694699646946996 46946996469469964694699646946996469469964694699646 94699646946996469469964694699646946996469469964694 69964694699646946996469469964694699646946996469469 96469469964694699646946996469469964694690096469469 96469469964694699646946996469469964694699646946996 46946996469469964694699646946996469469964694699646 94690096469469964694699646946996469469964694699646 94699646946996469469964694699646946996469469964694 69964694699646946900964694699646946996469469964694 69964694699646946996469469964694699646946996469469 96469469964694699646946996469469009646946996469469 96469469964694699646946996469469964694699646946996 46946996469469964694699646946996469469964694690096 46946996469469964694699646946996469469964694699646 94699646946996469469964694699646946996469469964694 69964694690096469469964694699646946996469469964694 69964694699646946996469469964694699646946996469469 96469469964694699646946900964694699646946996469469 96469469964694699646946996469469964694699646946996 46946996469469", "1864684688646846886468468864684688646846886468468 86468468864684688646846886468468864684688646846886 46846886468468864684688646846886468468864684688646 84688646846886468468864684688646846886468468864684 68864684688646846886468468008646846886468468864684 68864684688646846886468468864684688646846886468468 86468468864684688646846886468468864684680086468468 86468468864684688646846886468468864684688646846886 46846886468468864684688646846886468468864684688646 84680086468468864684688646846886468468864684688646 84688646846886468468864684688646846886468468864684 68864684688646846800864684688646846886468468864684 68864684688646846886468468864684688646846886468468 86468468864684688646846886468468008646846886468468 86468468864684688646846886468468864684688646846886 46846886468468864684688646846886468468864684680086 46846886468468864684688646846886468468864684688646 84688646846886468468864684688646846886468468864684 68864684680086468468864684688646846886468468864684 68864684688646846886468468864684688646846886468468 "));



Dб pra converter pra pawn tranquilamente. Й de divisгo.
Reply
#6

Caraca, tu deve ter mу cabeзгo, pra fazer esses bangs assim o_O
Reply
#7

Capaz, deve ter alguns bugs. Й arriscado dividir assim porque quanto maior o nъmero maior a probabilidade de ele quebrar no caminho. Como vocк estб dividindo em partes, na hora de juntar tudo acaba dando algum erro de precisгo. Mas para nгo muito grande ele dividi tranquilo.

Tipo:
4184594145148146148164/ 198449818914


4184594145148146148164 / 198449818914 =21086409491.6 (******)
4184594145148146148164 / 198449818914 = 21086409491.5681297742320398 (Meu)

Mais preciso que o ****** neste caso

o ****** arredondou para 91.6, o meu retornou 91.5681297742320398

Reply
#8

Caralho, tб de parabйns. Atй que ponto chega o ser humano auheuaheuhauhae'
Reply
#9

Para pawn, tem isto:
https://github.com/LassiR/numlib-samp
Reply
#10

Vou ver aqui depois como posso utiliza-lo.
Cara, valeu mesmo, tu й fera pra caralho nessas paradas.
Posso andar com vocк no recreio? (: kk
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)