Articles of ponto flutuante

Por que essa subtração não é igual a zero?

Eu me deparei com esses valores no meu código ColdFusion, mas a calculadora do Google parece ter o mesmo “bug”, onde a diferença é diferente de zero. 416582.2850 – 411476.8100 – 5105.475 = -2.36468622461E-011 http://www.google.com/search?hl=pt_PT&rlz=1C1GGLS_ptUS340US340&q=416582.2850+-+411476.8100+-+5105.475&aq=f&oq=&aqi= JavaCast’ing estes para long / float / double não ajuda, isso resulta em outras diferenças não-zero.

Chaves de ponto flutuante em std: map

O seguinte código deve encontrar a chave 3.0 em um std::map que existe. Mas, devido à precisão do ponto flutuante, não será encontrado. map mymap; mymap[3.0] = 1.0; double t = 0.0; for(int i = 0; i 0); } No exemplo acima, contains sempre será false . Minha solução atual é apenas multiplicar t por […]

Como faço para exibir a representação binária de um float ou double?

Gostaria de exibir a representação binária (ou hexadecimal) de um número de ponto flutuante. Eu sei como converter manualmente (usando o método aqui ), mas estou interessado em ver exemplos de código que fazem o mesmo. Embora eu esteja particularmente interessado nas soluções C ++ e Java, gostaria de saber se algumas linguagens tornam isso […]

extraindo mantissa e expoente do dobro em c #

Existe alguma maneira simples de obter a mantissa e expoente de um duplo em c # (ou. NET em geral)? Eu encontrei este exemplo usando o google, mas não tenho certeza de quão robusto seria. Poderia a representação binária para uma mudança dupla em alguma versão futura do framework, etc? A outra alternativa que encontrei […]

Por que o Double.MIN_VALUE não é negativo?

Alguém pode esclarecer por que o Double.MIN_VALUE não é realmente o valor mínimo que o Double pode levar? É um valor positivo e um Double pode ser negativo. Eu entendo porque é um número útil, mas parece um nome muito intuitivo, especialmente quando comparado ao Integer.MIN_VALUE . Chamar Double.SMALLEST_POSITIVE ou MIN_INCREMENT ou similar teria uma […]

Por que o sqr (x) escalar do SSE é mais lento que o rsqrt (x) * x?

Eu tenho perfilado alguns dos nossos principais matemática em um Intel Core Duo, e ao olhar para várias abordagens de raiz quadrada eu notei algo estranho: usando as operações escalares SSE, é mais rápido ter uma raiz quadrada recíproca e multiplicá-lo para obter o sqrt, do que usar o código de operação do sqrt nativo! […]

Converter decimal para duplo?

Eu quero usar uma barra de controle para alterar a opacidade de um formulário. Este é o meu código: decimal trans = trackBar1.Value / 5000; this.Opacity = trans; Quando eu construo o aplicativo, ele dá o seguinte erro: Não é possível converter implicitamente o tipo ‘decimal’ em ‘double’ . Eu tentei usar trans e double […]

Como os números de ponto flutuante são armazenados na memory?

Eu li que eles são armazenados na forma de mantissa e expoente Eu li este documento, mas não consegui entender nada.

Formato de ponto flutuante para std :: ostream

Como faço o seguinte com std :: cout? double my_double = 42.0; char str[12]; printf_s(“%11.6lf”, my_double); // Prints ” 42.000000″ Estou quase pronto para desistir e usar o sprintf_s. Mais geralmente, onde posso encontrar uma referência sobre formatação std :: ostream que lista tudo em um só lugar, em vez de espalhar tudo em um […]

Como faço para arredondar um número em JavaScript?

Enquanto trabalhava em um projeto, me deparei com um script JS criado por um ex-funcionário que basicamente cria um relatório na forma de Name : Value Name2 : Value2 etc. O peoblem é que os valores podem às vezes ser floats (com precisão diferente), inteiros, ou até mesmo no formato 2.20011E+17 . O que eu […]