Giter Club home page Giter Club logo

java-double-comparison's Introduction

ByteLegend Challenge of JavaIsland: Double Comparison

English

Implement double comparison

There is a surprising fact in src/main/java/com/bytelegend/Main.java - 0.1+0.2==0.3 is false! This is due to the fact that binary floating-point numbers can't represent decimal fractions precisely. In practice, if we have to compare two floating-point numbers for equality, we usually calculate the difference of them, and the difference is less than a certain small number (aka. ε, epsilon), we consider them equal.

Please fix the doubleEquals method so that the program runs with output:

0.1+0.2==0.3: true
  • You can accomplish this challenge via any way below:
    • Recommended for beginners: run git clone https://github.com/ByteLegendQuest/java-double-comparison to download the code, finish the challenge in your local IDE, then copy/paste/submit the answer in web editor.
    • Very unrecommended: you can click here to download zipped code if you don't like git operations.
    • Or: if you are confident enough to write code in web editor directly, go ahead.
    • Or: if you are familiar with GitHub, you can fork the repo, finish the challenge and create a pull request.
  • The bot will check your PR and tell you if you accomplish the challenge.
  • Go back to ByteLegend and continue your hero journey.

Good luck!

If you need any help, feel free to join the Discord Community or contact us via [email protected].

Note: we only allow you to modify the following files. Any changes to files other than the following files will be rejected:

  • src/main/java/com/bytelegend/Main.java
简体中文

实现两个double类型的比较

src/main/java/com/bytelegend/Main.java中有一个令人吃惊的现象,0.1+0.2==0.3的结果竟然是false! 这是由于浮点数本身的特性导致的:二进制的浮点数无法精确的表示十进制的小数。 在实践中,要比较两个浮点数是否相等,我们通常计算它们的差值,若二者之差小于某个很小的数字(称为ε, epsilon),我们就认为它们相等。 请基于这一**修复doubleEquals方法,使程序运行输出:

0.1+0.2==0.3: true
  • 你可以使用以下任意一种方法完成挑战:
    • 初学者推荐:运行git clone https://git.bytelegend.com/ByteLegendQuest/java-double-comparison将代码下载到本地,在本地使用IDE调试完成后复制到网页编辑器里提交。
    • 非常不推荐:如果你实在不喜欢git命令行操作,你可以点击这里直接下载打包好的代码
    • 或者:如果你非常自信不需要下载代码到本地调试,可以使用网页编辑器直接提交。
    • 或者:如果你对GitHub非常熟悉,你可以fork这个仓库、完成挑战后,创建一个Pull Request。
  • 机器人将会检查你的答案,告诉你你是否通过了挑战。
  • 回到字节传说,然后继续你的英雄旅程。

祝你好运!

如果你需要任何帮助,欢迎加入官方玩家QQ群(在首页右下角的联系 & 关于菜单里可以找到入群方式)或者Discord社区,或email至[email protected]

注意:我们只允许您修改以下文件,任何对其他文件的修改都会被拒绝:

  • src/main/java/com/bytelegend/Main.java
繁體中文

實現double比較

src/main/java/com/bytelegend/Main.java中有一個令人驚訝的事實 - 0.1+0.2==0.3false的!這是因為二進制浮點數不能精確地表示小數。在實踐中,如果我們必須比較兩個浮點數是否相等,我們通常會計算它們的差異,並且差異小於某個小數(aka. ε , epsilon ),我們認為它們相等。

請修復doubleEquals方法,以便程序運行並輸出:

0.1+0.2==0.3: true
  • 您可以通過以下任何方式完成此挑戰:
    • 建議初學者:運行git clone https://github.com/ByteLegendQuest/java-double-comparison下載代碼,在本地 IDE 中完成挑戰,然後在 Web 編輯器中復制/粘貼/提交答案。
    • 非常不推薦:如果你不喜歡git操作,可以點擊這裡下載壓縮代碼
    • 或者:如果您有足夠的信心直接在 Web 編輯器中編寫代碼,請繼續。
    • 或者:如果你熟悉 GitHub,你可以 fork倉庫,完成挑戰並創建一個拉取請求。
  • 機器人會檢查你的 PR 並告訴你是否完成了挑戰。
  • 回到ByteLegend繼續你的英雄之旅。

祝你好運!

如果您需要任何幫助,請隨時加入Discord 社區或通過[email protected]聯繫我們。

注意:我們只允許您修改以下文件。對以下文件以外的文件的任何更改都將被拒絕:

  • src/main/java/com/bytelegend/Main.java
Español

Implementar double comparación

Hay un hecho sorprendente en src/main/java/com/bytelegend/Main.java : ¡ 0.1+0.2==0.3 es false ! Esto se debe al hecho de que los números binarios de punto flotante no pueden representar fracciones decimales con precisión. En la práctica, si tenemos que comparar la igualdad de dos números de punto flotante, generalmente calculamos la diferencia entre ellos, y la diferencia es menor que un cierto número pequeño (también conocido como ε , epsilon ), los consideramos iguales.

Corrija el método doubleEquals para que el programa se ejecute con salida:

0.1+0.2==0.3: true
  • Puede lograr este desafío de cualquier manera a continuación:
  • El bot verificará tu PR y te dirá si logras el desafío.
  • Regrese a ByteLegend y continúe su viaje de héroe.

¡Buena suerte!

Si necesita ayuda, no dude en unirse a la comunidad de Discord o contáctenos a través de [email protected] .

Nota: solo le permitimos modificar los siguientes archivos. Cualquier cambio en los archivos que no sean los siguientes archivos será rechazado:

  • src/main/java/com/bytelegend/Main.java
العربية

تنفيذ مقارنة double

هناك حقيقة مفاجئة في src / main / java / com / bytelegend / Main.java - 0.1+0.2==0.3 false ! هذا يرجع إلى حقيقة أن أرقام الفاصلة العائمة الثنائية لا يمكن أن تمثل الكسور العشرية بدقة. من الناحية العملية ، إذا كان علينا مقارنة عددين من الفاصلة العائمة من أجل المساواة ، فعادة ما نحسب الفرق بينهما ، والفرق أقل من رقم صغير معين (يُعرف أيضًا باسم ε ، epsilon ) ، فنحن نعتبرهما متساويين.

يرجى إصلاح طريقة doubleEquals بحيث يعمل البرنامج مع الإخراج:

0.1+0.2==0.3: true

  • يمكنك إنجاز هذا التحدي بأي طريقة أدناه:
    • موصى به للمبتدئين: قم بتشغيل git clone https://github.com/ByteLegendQuest/java-double-comparison لتنزيل الكود وإنهاء التحدي في IDE المحلي الخاص بك ، ثم نسخ / لصق / إرسال الإجابة في محرر الويب.
    • غير موصى به على الإطلاق: يمكنك النقر هنا لتنزيل رمز مضغوط إذا كنت لا تحب عمليات git .
    • أو: إذا كنت واثقًا بدرجة كافية من كتابة التعليمات البرمجية في محرر الويب مباشرةً ، فابدأ.
    • أو: إذا كنت معتادًا على GitHub ، فيمكنك تفرع الريبو وإنهاء التحدي وإنشاء طلب سحب.
  • سيتحقق الروبوت من العلاقات العامة الخاصة بك ويخبرك إذا أنجزت التحدي.
  • ارجع إلى ByteLegend وتابع رحلة بطلك.

حظ سعيد!

إذا كنت بحاجة إلى أي مساعدة ، فلا تتردد في الانضمام إلى مجتمع Discord أو الاتصال بنا عبر [email protected] .

ملاحظة: نسمح لك فقط بتعديل الملفات التالية. سيتم رفض أي تغييرات يتم إجراؤها على الملفات بخلاف الملفات التالية:

  • src/main/java/com/bytelegend/Main.java
Português

Implementar double comparação

Há um fato surpreendente em src/main/java/com/bytelegend/Main.java - 0.1+0.2==0.3 é false ! Isso se deve ao fato de que os números binários de ponto flutuante não podem representar frações decimais com precisão. Na prática, se temos que comparar dois números de ponto flutuante para igualdade, geralmente calculamos a diferença deles, e a diferença é menor que um certo número pequeno (aka. ε , epsilon ), nós os consideramos iguais.

Por favor, corrija o método doubleEquals para que o programa seja executado com saída:

0.1+0.2==0.3: true
  • Você pode realizar esse desafio de qualquer maneira abaixo:
    • Recomendado para iniciantes: execute git clone https://github.com/ByteLegendQuest/java-double-comparison para baixar o código, conclua o desafio em seu IDE local e copie/cole/envie a resposta no editor da web.
    • Muito não recomendado: você pode clicar aqui para baixar o código zipado se não gostar das operações do git .
    • Ou: se você estiver confiante o suficiente para escrever código diretamente no editor da web, vá em frente.
    • Ou: se você estiver familiarizado com o GitHub, você pode bifurcar o repo , finalizar o desafio e criar um pull request.
  • O bot verificará seu PR e informará se você cumprir o desafio.
  • Volte para ByteLegend e continue sua jornada de herói.

Boa sorte!

Se precisar de ajuda, sinta-se à vontade para se juntar à Comunidade Discord ou entre em contato conosco via [email protected] .

Nota: só permitimos que você modifique os seguintes arquivos. Quaisquer alterações em arquivos que não sejam os arquivos a seguir serão rejeitadas:

  • src/main/java/com/bytelegend/Main.java
Bahasa Indonesia

Terapkan perbandingan double

Ada fakta mengejutkan di src/main/Java/com/bytelegend/Main.java - 0.1+0.2==0.3 is false ! Hal ini disebabkan fakta bahwa bilangan biner floating-point tidak dapat mewakili pecahan desimal secara tepat. Dalam praktiknya, jika kita harus membandingkan dua angka floating-point untuk kesetaraan, kita biasanya menghitung perbedaannya, dan perbedaannya kurang dari angka kecil tertentu (alias epsilon ε , kita menganggapnya sama.

Harap perbaiki metode doubleEquals agar program berjalan dengan output:

0.1+0.2==0.3: true
  • Anda dapat menyelesaikan tantangan ini melalui cara apa pun di bawah ini:
    • Direkomendasikan untuk pemula: jalankan git clone https://github.com/ByteLegendQuest/java-double-comparison untuk mengunduh kode, selesaikan tantangan di IDE lokal Anda, lalu salin/tempel/kirim jawabannya di editor web.
    • Sangat tidak direkomendasikan: Anda dapat mengklik di sini untuk mengunduh kode zip jika Anda tidak menyukai operasi git .
    • Atau: jika Anda cukup percaya diri untuk menulis kode di editor web secara langsung, silakan.
    • Atau: jika Anda terbiasa dengan GitHub, Anda dapat melakukan fork repo , menyelesaikan tantangan, dan membuat permintaan tarik.
  • Bot akan memeriksa PR Anda dan memberi tahu Anda jika Anda menyelesaikan tantangan.
  • Kembali ke ByteLegend dan lanjutkan perjalanan pahlawan Anda.

Semoga beruntung!

Jika Anda memerlukan bantuan, jangan ragu untuk bergabung dengan Komunitas Discord atau hubungi kami melalui [email protected] .

Catatan: kami hanya mengizinkan Anda untuk mengubah file berikut. Setiap perubahan pada file selain file berikut akan ditolak:

  • src/main/java/com/bytelegend/Main.java
Français

Implémenter double comparaison

Il y a un fait surprenant dans src/main/java/com/bytelegend/Main.java - 0.1+0.2==0.3 est false ! Cela est dû au fait que les nombres binaires à virgule flottante ne peuvent pas représenter précisément les fractions décimales. En pratique, si nous devons comparer deux nombres à virgule flottante pour l'égalité, nous calculons généralement leur différence, et la différence est inférieure à un certain petit nombre (aka. ε , epsilon ), nous les considérons comme égaux.

Veuillez corriger la méthode doubleEquals afin que le programme s'exécute avec la sortie :

0.1+0.2==0.3: true
  • Vous pouvez accomplir ce défi de n'importe quelle manière ci-dessous:
    • Recommandé pour les débutants : exécutez git clone https://github.com/ByteLegendQuest/java-double-comparison pour télécharger le code, terminez le défi dans votre IDE local, puis copiez/collez/soumettez la réponse dans l'éditeur Web.
    • Très déconseillé : vous pouvez cliquer ici pour télécharger le code compressé si vous n'aimez pas les opérations git .
    • Ou : si vous êtes suffisamment confiant pour écrire du code directement dans l'éditeur Web, continuez.
    • Ou : si vous êtes familier avec GitHub, vous pouvez forker le dépôt , terminer le défi et créer une demande d'extraction.
  • Le bot vérifiera votre PR et vous dira si vous accomplissez le défi.
  • Retournez à ByteLegend et continuez votre voyage de héros.

Bonne chance!

Si vous avez besoin d'aide, n'hésitez pas à rejoindre la communauté Discord ou à nous contacter via [email protected] .

Remarque : nous vous autorisons uniquement à modifier les fichiers suivants. Toute modification de fichiers autres que les fichiers suivants sera rejetée :

  • src/main/java/com/bytelegend/Main.java
日本語

double比較を実装する

src / main / java / com / bytelegend/Main.javaに驚くべき事実があります0.1+0.2==0.3falseです!これは、2進数の浮動小数点数が小数を正確に表すことができないためです。実際には、2つの浮動小数点数を比較して等しいかどうかを比較する必要がある場合、通常はそれらの差を計算し、その差が特定の小さい数(別名、 εepsilon )よりも小さい場合、それらは等しいと見なします。

プログラムが出力で実行されるように、 doubleEqualsメソッドを修正してください。

0.1+0.2==0.3: true
  • この課題は、以下のいずれかの方法で達成できます。
    • 初心者に推奨: git clone https://github.com/ByteLegendQuest/java-double-comparisonを実行してコードをダウンロードし、ローカルIDEでチャレンジを終了してから、Webエディターで回答をコピー/貼り付け/送信します。
    • 非常に推奨されていませんgit操作が気に入らない場合は、 ここをクリックしてzipコードをダウンロードできます。
    • または:Webエディターで直接コードを記述できる自信がある場合は、先に進んでください。
    • または:GitHubに精通している場合は、リポジトリをフォークしてチャレンジを終了し、プルリクエストを作成できます。
  • ボットはPRをチェックし、チャレンジを達成したかどうかを通知します。
  • ByteLegendに戻り、ヒーローの旅を続けてください。

幸運を!

ヘルプが必要な場合は、 Discordコミュニティに参加するか、contact @bytelegend.comからお問い合わせください。

注:変更できるのは次のファイルのみです。次のファイル以外のファイルへの変更は拒否されます。

  • src/main/java/com/bytelegend/Main.java
Русский

Реализовать double сравнение

В src/main/java/com/bytelegend/Main.java есть удивительный факт - 0.1+0.2==0.3 false ! Это связано с тем, что двоичные числа с плавающей запятой не могут точно представлять десятичные дроби. На практике, если нам приходится сравнивать два числа с плавающей запятой на равенство, мы обычно вычисляем их разность, и разница меньше некоторого небольшого числа (он же ε , epsilon ), мы считаем их равными.

Пожалуйста, исправьте метод doubleEquals , чтобы программа работала с выводом:

0.1+0.2==0.3: true
  • Вы можете выполнить эту задачу любым способом, указанным ниже:
  • Бот проверит ваш PR и сообщит, выполнили ли вы задание.
  • Вернитесь в ByteLegend и продолжайте свое героическое путешествие.

Удачи!

Если вам нужна помощь, присоединяйтесь к сообществу Discord или свяжитесь с нами по адресу [email protected] .

Примечание: мы разрешаем вам изменять только следующие файлы. Любые изменения в файлах, кроме следующих файлов, будут отклонены:

  • src/main/java/com/bytelegend/Main.java
Deutsch

Implementieren Sie einen double Vergleich

Es gibt eine überraschende Tatsache in src/main/java/com/bytelegend/Main.java - 0.1+0.2==0.3 ist false ! Dies liegt daran, dass binäre Gleitkommazahlen Dezimalbrüche nicht genau darstellen können. Wenn wir zwei Fließkommazahlen auf Gleichheit vergleichen müssen, berechnen wir in der Praxis normalerweise die Differenz von ihnen, und die Differenz ist kleiner als eine bestimmte kleine Zahl (auch bekannt als ε , epsilon ), wir betrachten sie als gleich.

Bitte korrigieren Sie die Methode doubleEquals , damit das Programm mit Ausgabe läuft:

0.1+0.2==0.3: true
  • Sie können diese Herausforderung auf eine der folgenden Arten meistern:
  • Der Bot überprüft Ihre PR und teilt Ihnen mit, ob Sie die Herausforderung meistern.
  • Gehen Sie zurück zu ByteLegend und setzen Sie Ihre Heldenreise fort.

Viel Glück!

Wenn Sie Hilfe benötigen, können Sie sich gerne der Discord Community anschließen oder uns über [email protected] kontaktieren .

Hinweis: Wir erlauben Ihnen nur, die folgenden Dateien zu ändern. Alle Änderungen an anderen Dateien als den folgenden Dateien werden abgelehnt:

  • src/main/java/com/bytelegend/Main.java
한국어

double 비교 구현

src/main/java/com/bytelegend/Main.java 에 놀라운 사실이 있습니다. 0.1+0.2==0.3false 입니다! 이는 이진 부동 소수점 숫자가 소수를 정확하게 나타낼 수 없기 때문입니다. 실제로 두 개의 부동 소수점 숫자가 같은지 비교해야 하는 경우 일반적으로 그 차이를 계산하고 그 차이가 특정 작은 숫자(일명 ε , epsilon )보다 작으면 동일한 것으로 간주합니다.

프로그램이 출력과 함께 실행되도록 doubleEquals 메서드를 수정하십시오.

0.1+0.2==0.3: true
  • 아래 방법을 통해 이 챌린지를 완료할 수 있습니다.
    • 초보자를 위한 권장 사항: git clone https://github.com/ByteLegendQuest/java-double-comparison 을 실행하여 코드를 다운로드하고 로컬 IDE에서 챌린지를 완료한 다음 웹 편집기에서 답변을 복사/붙여넣기/제출합니다.
    • 매우 권장하지 않음: git 작업이 마음에 들지 않으면 여기를 클릭하여 압축 코드를 다운로드 할 수 있습니다.
    • 또는 웹 편집기에서 직접 코드를 작성할 만큼 자신이 있다면 계속 진행하십시오.
    • 또는 GitHub에 익숙하다면 리포지토리를 분기 하고 챌린지를 완료하고 풀 요청을 생성할 수 있습니다.
  • 봇은 PR을 확인하고 도전 과제를 달성했는지 알려줍니다.
  • ByteLegend 로 돌아가 영웅 여정을 계속하세요.

행운을 빕니다!

도움이 필요하면 언제든지 Discord 커뮤니티 에 가입하거나 [email protected] 을 통해 문의하세요.

참고: 다음 파일만 수정할 수 있습니다. 다음 파일 이외의 파일에 대한 변경 사항은 거부됩니다.

  • src/main/java/com/bytelegend/Main.java
Italiano

Implementare il double confronto

C'è un fatto sorprendente in src/main/java/com/bytelegend/Main.java - 0.1+0.2==0.3 è false ! Ciò è dovuto al fatto che i numeri binari a virgola mobile non possono rappresentare con precisione le frazioni decimali. In pratica, se dobbiamo confrontare due numeri in virgola mobile per l'uguaglianza, di solito ne calcoliamo la differenza e la differenza è inferiore a un certo numero piccolo (aka. ε , epsilon ), li consideriamo uguali.

Correggi il metodo doubleEquals in modo che il programma venga eseguito con l'output:

0.1+0.2==0.3: true
  • Puoi portare a termine questa sfida in qualsiasi modo di seguito:
    • Consigliato per i principianti: esegui git clone https://github.com/ByteLegendQuest/java-double-comparison per scaricare il codice, completa la sfida nel tuo IDE locale, quindi copia/incolla/invia la risposta nell'editor web.
    • Molto sconsigliato: puoi fare clic qui per scaricare il codice zippato se non ti piacciono le operazioni git .
    • Oppure: se sei abbastanza sicuro da scrivere il codice direttamente nell'editor web, vai avanti.
    • Oppure: se hai familiarità con GitHub, puoi eseguire il fork del repository , completare la sfida e creare una richiesta pull.
  • Il bot controllerà il tuo PR e ti dirà se hai superato la sfida.
  • Torna a ByteLegend e continua il tuo viaggio da eroe.

Buona fortuna!

Se hai bisogno di aiuto, non esitare a unirti alla community di Discord o contattaci tramite [email protected] .

Nota: ti permettiamo solo di modificare i seguenti file. Eventuali modifiche ai file diversi dai seguenti file verranno rifiutate:

  • src/main/java/com/bytelegend/Main.java

java-double-comparison's People

Contributors

1994xiong avatar andrewbaxter439 avatar apoptosistoxin4869 avatar batman405 avatar birlinha avatar bytelegendbot avatar cdwc233 avatar chushi0 avatar denghaoze avatar descentdd avatar firepond avatar goh73 avatar jufjzq avatar karolk75 avatar keranbingaa avatar lemon-altxx avatar lin-kq avatar longyang-liu avatar mooos-mosheng avatar o0hana avatar s9x avatar saraadkun avatar shenshaoming avatar shiguoqing99 avatar sn-beaux avatar tiger0961 avatar williamgl avatar wwwww1wwwww avatar yunghf avatar zusmanfate avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.