processing / processing/libprocessing
Discrepancy: number comparison differs from Processing Java `(0.1 + 0.2 == 0.3)`
オープン
まだ誰も着手していません。
- 主要言語
- Rust
- スター
- 69
- フォーク
- 14
- 平均マージ
- 15日 22時間
- マージ済み PR(30日)
- 3
説明
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
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
提供された Processing Java および mewnala Python のスケッチを実行して、結果が異なることを確認します。次に、Rust 実装における数値評価の動作を追跡し、その不一致を修正すべきか文書化すべきかを判断します。その際、期待される動作を定義するテストまたはドキュメントの更新を行います。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, python, rust
- 領域
- backend
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 45/100