Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

A VERDADEIRA IMPORTÂNCIA DOS NÚMEROS

Ao fazer 0.1 + 0.2 = 0.30000000000000004. Até aí tudo bem, eu entendi porque esse erro acontece. Porém ficaram muitas dúvidas em relação aos números em geral. É loucura pensar que até então tudo se baseia em 10 dígitos contando com o zero. Porem é algo muito interessante e passa desapercebido por quase todos

Não sei se conseguirei me expressar em relação as minhas dúvidas...

1º Os números tem um limite na computação, até porque não tem como armazenar um número infinito. Mas, se por acaso, pudéssemos conseguir armazenar números extremamente gigantescos somente com uma simples equação?

Por Exemplo: Em um banco de dados, números são armazenados dia-pós-dia, mas o que eles tem de diferença? No caso, as informações de cada um especificamente. Então, cada número em específico ocupa uma posição na memória? Por que não unificar o valor fora desses números em um só?

2º A complexidade de um número está além de seu valor. Os números constroem, destroem, modificam, criam e armazenam informações.

O quão complexo os números podem ser? Existe algum estudo mais aprofundado sobre isso?

3º Por último; Os computadores estão sempre evoluindo cada vez mais, tornando possível realizar coisas absurdas e incríveis. Seria possível em um futuro mais distante, as máquinas conseguirem se aproximar mais do programador? Até então, somos nós que tentamos estar mais perto dela, com as linguagens de baixo e alto nível. A velocidade depende apenas dos números? Entradas e saídas também?

1 resposta
solução!

Recomendo a leitura disso para entender: https://0.30000000000000004.com/ | https://stackoverflow.com/questions/588004/is-floating-point-math-broken/588014#588014 | https://standards.ieee.org/ieee/754/4211/

Quando se trata de int os números não tendem a explodir:

Quando você vai armazenar números GIGANTES em um banco de dados o bigint tem essa margem de armazenamento: -9223372036854775808 para 9223372036854775807, você pode armazenar esse bigint como varchar simplesmente criando uma coluna chamada varchar[21], porém o varchar é bem mais lento que o bigint... Recomendo a letura disso: https://stackoverflow.com/questions/15241708/mysql-bigint-vs-varchar e disso https://stackoverflow.com/questions/1603472/indexing-performance-bigint-vs-varchar

São poucos os casos onde vc vai se deparar com essa quantidade absurda de números e quando chega a esses valores normalmente a REPRESENTAÇÃO deles não é segura

https://www.c-sharpcorner.com/UploadFile/rohatash/maximum-limit-value-for-integer-data-type-in-sql-server-2012/ e https://rpbouman.blogspot.com/2010/05/mysql-maximum-value-of-integer.html

Agora o um número Float pode atingir valores bem grandes, por exemplo: 340,282,346,638,528,860,000,000,000,000,000,000,000.000000 que é REPRESENTADO dessa forma: 3.4028234663852886e+38 e o float também é definido pela IEEE754 "symetrical"

Agora temos o double que pode chegar a valores bem maiores: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368 e é representado como 1.7976931348623157e+308 https://stackoverflow.com/questions/1848700/biggest-integer-that-can-be-stored-in-a-double

No JavaScript se um número passar esse valor, ele armazena como "INFINITO": Double para Infinito