processing / processing/libprocessing

Discrepancy: number comparison differs from Processing Java `(0.1 + 0.2 == 0.3)`

オープン
#203 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
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

Image

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

提供された Processing Java および mewnala Python のスケッチを実行して、結果が異なることを確認します。次に、Rust 実装における数値評価の動作を追跡し、その不一致を修正すべきか文書化すべきかを判断します。その際、期待される動作を定義するテストまたはドキュメントの更新を行います。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java, python, rust
領域
backend
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
説明が足りない
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。