Articles of precisão

Por que a adição de 0,1 vezes múltiplas permanece sem perdas?

Eu sei que o número decimal 0.1 não pode ser representado exatamente com um número binário finito ( explicação ), então double n = 0.1 perderá alguma precisão e não será exatamente 0.1 . Por outro lado, 0.5 pode ser representado exatamente porque é 0.5 = 1/2 = 0.1b . Tendo dito que é compreensível […]

Métodos trigonométricos Java BigDecimal

Eu estou desenvolvendo um analisador matemático que é capaz de avaliar String como ‘5+b*sqrt(c^2)’ . Eu estou usando o ANTLR para analisar e fazer um bom progresso. Agora eu me BigDecimal class Java BigDecimal e pensei: ei, por que não pensar em precisão aqui. Meu problema é que a API Java não fornece methods trigonométricos […]

Decimais de precisão arbitrária em c #

Duplicatas possíveis: Inteiros grandes em c # C # dígitos dígitos significantes ilimitados (precisão arbitrária) sem java Eu li a pergunta em decimais de precisão arbitrária em c #? mas eu não tenho a biblioteca J #. Eu preciso de uma biblioteca para decimais de precisão arbitrária com c #.

Erro de ponto flutuante na representação?

quando eu faço essa multiplicação 0,94 * 8700 a saída é 8177.999999999999 mas deveria ter sido 8178 Eu estou usando o java, mas eu não acho que esse erro está relacionado a uma linguagem de programação particular, agora a minha pergunta é … por que isso aconteceu? e que outros números (apenas como exemplo) causam […]

Quantos números duplos existem entre 0,0 e 1,0?

Isso é algo que está em minha mente há anos, mas eu nunca tive tempo para perguntar antes. Muitos (pseudo) geradores de números randoms geram um número random entre 0,0 e 1,0. Matematicamente, há números infinitos nesse intervalo, mas o double é um número de ponto flutuante e, portanto, tem uma precisão finita. Então as […]

Manipulando e comparando pontos flutuantes em java

Em Java, a aritmética de ponto flutuante não é representada com precisão. Por exemplo, este código java: float a = 1.2; float b= 3.0; float c = a * b; if(c == 3.6){ System.out.println(“c is 3.6”); } else { System.out.println(“c is not 3.6″); } Imprime “c não é 3.6”. Eu não estou interessado em precisão […]

Precisão dupla – casas decimais

Pelo que li, um valor do tipo de dados double tem uma precisão aproximada de 15 casas decimais. No entanto, quando eu uso um número cuja representação decimal repete, como 1.0 / 7.0, acho que a variável contém o valor de 0,14285714285714285 – que é 17 lugares (através do depurador). Eu gostaria de saber por […]

Ajustando precisão decimal, .net

Essas linhas em c # decimal a = 2m; decimal b = 2.0m; decimal c = 2.00000000m; decimal d = 2.000000000000000000000000000m; Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d); Gera esta saída: 2 2.0 2.00000000 2.000000000000000000000000000 Então eu posso ver que criar uma variável decimal a partir de um literal me permite controlar a precisão. Posso ajustar a precisão […]

Como criar um timer de alta resolução no Linux para medir o desempenho do programa?

Eu estou tentando comparar GPU para desempenho da CPU. Para a GPU NVIDIA, tenho usado os tipos cudaEvent_t para obter um tempo muito preciso. Para a CPU, tenho usado o seguinte código: // Timers clock_t start, stop; float elapsedTime = 0; // Capture the start time start = clock(); // Do something here ……. // […]

Precisão do ponto flutuante de C ++

Duplicar Possível: Exemplos de imprecisão de ponto flutuante double a = 0.3; std::cout.precision(20); std::cout << a << std::endl; resultado: 0,2999999999999999889 double a, b; a = 0.3; b = 0; for (char i = 1; i <= 50; i++) { b = b + a; }; std::cout.precision(20); std::cout << b << std::endl; Resultado: 15.000000000000014211 Então, ‘a’ […]