processing / processing/libprocessing
Discrepancy: number comparison differs from Processing Java `(0.1 + 0.2 == 0.3)`
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Rust
- Estrelas
- 69
- Forks
- 14
- Merge médio
- 15d 22h
- PRs com merge (30d)
- 3
Descrição
I don't know whether this is something that needs to be addressed or just documented.
I suppose this is related to the difference between float and double precision (?)
In Processing, this condition evaluates to true:
void setup() {
size(400, 400);
if (0.1 + 0.2 == 0.3) {
background(0, 255, 0);
circle(200, 200, 100);
}
}
The equivalent mewnala sketch evaluates the condition as false.
from mewnala import *
def setup():
size(200, 200)
if 0.1 + 0.2 == 0.3:
background(0, 255, 0)
circle(200, 200, 100)
run()
Note: size is reduced in mewnala to account for https://github.com/processing/libprocessing/issues/198
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Execute os sketches fornecidos de Processing Java e mewnala Python para confirmar os resultados diferentes. Em seguida, rastreie o comportamento da avaliação numérica na implementação em Rust e determine se a discrepância deve ser corrigida ou documentada, com um teste ou atualização da documentação definindo o comportamento esperado.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- java, python, rust
- Domínio
- backend
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Pouca atividade
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 45/100