Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Realiza funções para arredondar a parte inferior e superior uma vez
Pode ajudar alguém
Realiza funções para arredondar a parte inferior e superior uma vez
Pode ajudar alguém
tente obter um resultado de0,9999999999999999999999999
X = 0.99999999999999999
10*X = 10*0.99999999999999999
10*X-X = 10*0,9999999999999999999-0,99999999999999999
9*X = 9*0.99999999999999999
obtemos 9*X = 9 ou X igual a 1 (um)
v1 = (1/3) = 0,33333333 | v2 = 3*(1/3) = 1,00000000
ou 0,9999999999999999999 = 1,0
v1 (1.00000000) >= 1.0
Obrigado a todos pela ajuda!
Eu escolhi a solução de arredondar mais 1 dígito viaNormalizeDouble, e depois aparar o último dígito. Até agora, é completamente adequado.
Novamente sobre arredondamento......
Por favor, informe sobre a situação (não jogue tomates, eu sou um humanitário),
existe tal variável:
double delta=NormalizeDouble(new_lot-sum_lots,Lots_Digits);
if(delta>0) delta-=OrderLots();
if(delta<0) delta+=OrderLots();
O delta é originalmente normalizado,
A OrderLots provavelmente deveria retornar dublagens normalizadas,
mas de alguma forma, às vezes, em raras ocasiões eu recebo números como 2,77555557561561562891e-17
Portanto, é quase zero, mas não zero.......
primeira pergunta - isto é normal?
segunda pergunta - como entendo, será suficiente para mim fazer a segunda normalização para evitar rabos?
Terceira pergunta (sinto que não vou entender de qualquer forma, mas vou perguntar de qualquer forma):
a adição de dois números normalizados pode dar números não-normalizados?
P.S. Peço desculpas por falar nisso novamente, mas não tenho forças para reler tudo novamente.
Novamente sobre arredondamento......
Por favor, informe sobre a situação (não jogue tomates, eu sou um humanitário),
existe tal variável:
double delta=NormalizeDouble(new_lot-sum_lots,Lots_Digits);
if(delta>0) delta-=OrderLots();
if(delta<0) delta+=OrderLots();
O delta é originalmente normalizado,
A OrderLots provavelmente deveria retornar dublagens normalizadas,
mas de alguma forma, às vezes, em raras ocasiões eu recebo números como 2,77555557561561562891e-17
Portanto, é quase zero, mas não zero.......
primeira pergunta - isto é normal?
segunda pergunta - como entendo, será suficiente para mim fazer a segunda normalização para evitar rabos?
Terceira pergunta (sinto que não vou entender de qualquer forma, mas vou perguntar de qualquer forma):
a adição de dois números normalizados pode dar números não-normalizados?
P.S. Desculpe-me por falar nisso novamente, mas eu não tenho energia para reler tudo
P.S. Peço desculpas por falar nisso novamente, mas não tenho energia para passar por tudo isso novamente
É melhor verificar você mesmo com exemplos diferentes, isso lhe dará um entendimento.
A única coisa é que estou fazendo isso errado:
mas assim.
Para números duplos. Não sei se isso realmente importa, mas nunca encontrei um erro com minha variante (tento comparar apenas os mesmos tipos de variáveis).
Não sei se isso realmente importa, mas nunca encontrei um erro com minha versão (apenas tento comparar os mesmos tipos de variáveis).