Articles of ponto flutuante

C # String para Conversão Flutuante

Eu preciso converter uma string para um float. Esta é a minha string de exemplo: 1 MW +00.000,00 mm 2 MW +0000.000 mm 3 MW -00000,01 mm 4 MW +00.000,00 mm 5 MW +00002,92 mm 6 MW +00002,69 mm E é isso que estou fazendo: text = text.Substring(pos + 5, 9).Trim(); float val = 0.0F; […]

o arredondamento decimal está desativado para (276/304) * 304

Se você colocar o seguinte código no seu compilador, o resultado é um pouco bizar: decimal x = (276/304)*304; double y = (276/304)*304; Console.WriteLine(“decimal x = ” + x); Console.WriteLine(“double y = ” + y); Resultado: decimal x = 275.99999999999999999999999 duplo y = 276,0 Alguém pode explicar isso para mim? Eu não entendo como isso […]

Diferenças C ++ / C # com float e double

Estamos convertendo uma biblioteca de matemática em C ++ em C #. A biblioteca mistura o uso de floats e doubles (lançando entre eles algumas vezes) e estamos tentando fazer o mesmo, a fim de obter exatamente os mesmos resultados em C # que tivemos em C ++, mas está provando ser muito difícil se […]

Encontre o flutuante logo abaixo de um valor

Digamos que eu tenha um float X. Eu quero encontrar o maior número que é menor que X e pode ser armazenado sem perdas em um float. IIRC o padrão IEEE diz que você pode fazer isso convertendo os bits do float para uma representação int, subtraindo um e convertendo de volta para float. ( […]

O que causa perda significativa de precisão FP ao compilar para 64 bits?

Plataforma: C # usando o Visual Studio 2013. Eu tinha um aplicativo do Windows em execução em uma CPU Haswell de 64 bits que estava funcionando corretamente com ‘Prefer 32-bit’ habilitado. Eu decidi atualizar para ‘Prefiro 64-bit’ desmarcando ‘Prefer 32-bit’ e a aritmética do aplicativo mudou repentinamente para valores incorretos. Eu perdi 29 bits de […]

Por que estou recebendo o resultado errado ao usar float?

Duplicatas possíveis: Por que é (duplo) 0.6f> (duplo) (6 / 10f)? Por que a aritmética de ponto flutuante em C # é imprecisa? Eu tenho o seguinte código em c #: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StackOverflow { class Program { static void Main(string[] args) { float num1 = 17.03F; float […]

Como faço para salvar um número de ponto flutuante em 2 bytes?

Sim, estou ciente do padrão de meia-precisão IEEE-754 e, sim, estou ciente do trabalho realizado no campo. Simplificando, estou tentando salvar um simples número de ponto flutuante (como 52.1 ou 1.25 ) em apenas 2 bytes. Eu tentei algumas implementações em Java e em C #, mas elas arruinaram o valor de input decodificando um […]

Como posso detectar se um float tem uma expansão decimal repetida em c #?

Eu simplesmente preciso saber como posso detectar a expansão decimal repetida em floats. Exemplo: 0.123456789123456789 A parte repetitiva do número seria 123456789. Eu quero automatizar isso em c #, existe alguma solução inteligente?

Como arredondar um valor flutuante em c #?

Eu tenho um problema ao arredondar um valor flutuante. Eu tenho um valor de flutuação que é definido como 0.8 mas no código c # é de alguma forma 0.80000000000000004. Então eu quero arredondá-lo para que se torne 0.8. eu tentei: float roundedFloatvalue = (float)Math.Round((Decimal)floatvalue, 2, MidpointRounding.AwayFromZero); e: float roundedFloatvalue = Truncate(floatvalue, 2); public static […]

Regra de ouro para testar a igualdade de dois duplos em c #?

Digamos que eu tenha algum código que faça alguma aritmética de ponto flutuante e armazene os valores em duplas. Como alguns valores não podem ser representados perfeitamente em binário, como testo a igualdade com um grau razoável de certeza? Como faço para determinar o que “razoável” significa? Pode double.Epsilon ser usado de alguma forma? Atualizar […]