From 0436be089d15d8a2db6649b4135ec2bf8c054ccb Mon Sep 17 00:00:00 2001 From: Goutte Date: Mon, 15 Jul 2024 12:26:22 +0200 Subject: [PATCH 1/2] feat(koan): add a koan about rounding pitfalls The solution is 2.67 This is because 2.675 is actually approximated in IEE754: 2.67499999999999982236431605997495353221893310546875 Close, but no cigar. Fixes #268 /spend 30m --- lib/koans/03_numbers.ex | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/koans/03_numbers.ex b/lib/koans/03_numbers.ex index 9fb3ab23..f3cda976 100644 --- a/lib/koans/03_numbers.ex +++ b/lib/koans/03_numbers.ex @@ -109,6 +109,10 @@ defmodule Numbers do assert Float.round(-5.5674, 3) === ___ end + koan "But beware of floating dragons" do + assert Float.round(2.675, 2) == ___ + end + koan "I want the first and last in the range" do first..last = Range.new(1, 10) From 4aa94d574bcd460d93b3778ba48d68c399cc28bf Mon Sep 17 00:00:00 2001 From: Goutte Date: Wed, 17 Jul 2024 01:53:47 +0200 Subject: [PATCH 2/2] test: test the koan about rounding dragons --- test/koans/numbers_koans_test.exs | 1 + 1 file changed, 1 insertion(+) diff --git a/test/koans/numbers_koans_test.exs b/test/koans/numbers_koans_test.exs index a56b98a1..ece04f5e 100644 --- a/test/koans/numbers_koans_test.exs +++ b/test/koans/numbers_koans_test.exs @@ -28,6 +28,7 @@ defmodule NumbersTests do 99.0, 12.34, {:multiple, [6.0, 5.0, 8.9, -5.567]}, + 2.67, {:multiple, [1, 10]}, {:multiple, [true, true, false]}, {:multiple, [true, false]}