frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Comparing floating-point numbers (2012)

https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/
26•sph•1y ago

Comments

LegionMammal978•1y ago
I'd argue that any equality comparison of floating-point numbers is asking for trouble, unless you're specifically working with small dyadic fractions (using exact comparison) or testing a purely heuristic 'closeness' condition (using fuzzy comparison).

Of course, inequalities show up in a lot more places, but are similarly fraught with difficulty, since mathematical statements may fail to translate to floating-point inequalities. E.g., in computational geometry, people have written entire papers about optimizing correct orientation predicates [0], since the naive method can easily break at small angles. This sort of thing is what often shows up as tiny seams in 3D video-game geometry.

[0] https://www.cs.cmu.edu/~quake/robust.html

mtklein•1y ago
My preferred way to compare floats as being interchangeably equivalent in unit tests is

    bool equiv(float x, float y) {
        return (x <= y && y <= x)
            || (x != x && y != y);
    }
This handles things like ±0 and NaNs (while NaNs can't be IEEE-754-equal per se, they're almost always interchangeable), and convinces -Wfloat-equal you kinda know what you're doing. Also everything visually lines up real neat and tidy, which I find makes it easy to remember.

Outside unit tests... I haven't really encountered many places where float equality is actually what I want to test. It's usually some < or <= condition instead.

sph•1y ago
I have built a production Javascript library with decent amounts of users that incorporates the following hack to deal with float error (avert your eyes if you're sensitive):

  // 1.2 - 1.0 === 0.19999999999999996
  // fixFloatError(1.2 - 1.0) === 0.2
  var fixFloatError = function (n) {
    return parseFloat(n.toPrecision(12));
  };
It felt correct at the time, but after reading the article, I cringe at how fundamentally broken it is. I got away with it because the library is used to convert betting odds, which are mostly small floating point numbers, so the error is often < 10^-12.

Project Hail Mary – Stellar Navigation Chart

https://valhovey.github.io/gaia-mary/
727•speleo•12h ago•167 comments

Blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD

https://crocidb.com/post/this-blog-ran-on-ubuntu-16-04-for-10-years-i-migrated-it-to-freebsd/
216•speckx•10h ago•116 comments

Samsung chip workers will get an average $340k bonus as AI profits soar

https://qz.com/samsung-chip-workers-bonus-ai-profits-052126
168•carabiner•3h ago•94 comments

Using Kagi Search with Low Vision

https://veroniiiica.com/using-kagi-search-with-low-vision/
171•speckx•9h ago•44 comments

Was my $48K GPU server worth it?

https://rosmine.ai/2026/05/13/was-my-48k-gpu-worth-it/
360•apwheele•3d ago•257 comments

Uv is fantastic, but its package management UX is a mess

https://www.loopwerk.io/articles/2026/uv-ux-mess/
137•nchagnet•8h ago•83 comments

Mycorrhizal Fungi, Nature's Key to Plant Survival and Success

https://pacifichorticulture.org/articles/mycorrhizal-fungi-natures-key-to-plant-survival-and-succ...
63•mooreds•1d ago•11 comments

Indexing a year of video locally on a 2021 MacBook with Gemma4-31B (50GB swap)

https://blog.simbastack.com/indexed-a-year-of-video-locally/
332•asenna•15h ago•99 comments

Show HN: Freenet, a peer-to-peer platform for decentralized apps

https://freenet.org/
245•sanity•14h ago•136 comments

Python 3.15: features that didn't make the headlines

https://blog.changs.co.uk/python-315-features-that-didnt-make-the-headlines.html
350•rbanffy•18h ago•166 comments

Tristan Davey's Punch Card Archive

https://punchcards.tristandavey.com/
13•ohjeez•2d ago•2 comments

Lost Images from the 1945 Trinity Nuclear Test Restored

https://spectrum.ieee.org/trinity-nuclear-test
317•pseudolus•18h ago•98 comments

Flipper One – we need your help

https://blog.flipper.net/flipper-one-we-need-your-help/
1100•sandebert•18h ago•427 comments

Launch HN: Runtime (YC P26) – Sandboxed coding agents for everyone on a team

https://www.runtm.com/
77•gustrigos•13h ago•22 comments

Cleve Moler (Matlab, MathWorks) passed away on May 20, 2026

https://www.mathworks.com/company/aboutus/founders/clevemoler.html
8•mychele•2h ago•0 comments

Waymo pauses Atlanta service as its robotaxis keep driving into floods

https://techcrunch.com/2026/05/21/waymo-pauses-atlanta-service-as-its-robotaxis-keep-driving-into...
285•mattas•12h ago•351 comments

Deciphering the Hashihara Castle Town Map

https://www.obayashi.co.jp/en/kikan_obayashi/detail/kikan_64_project.html
33•1970-01-01•2d ago•0 comments

Spotify will start reserving concert tickets for fans

https://www.hollywoodreporter.com/music/music-industry-news/spotify-will-start-reserving-concert-...
126•elffjs•12h ago•249 comments

Multi-Stream LLMs: new paper on parallelizing/separating prompts, thinking, I/O

https://arxiv.org/abs/2605.12460
83•atomicthumbs•9h ago•6 comments

Seattle Shield, an intelligence-sharing network operated by the Seattle police

https://prismreports.org/2026/05/20/seattle-shield-private-companies-surveillance/
439•root-parent•11h ago•173 comments

Google's Antigravity bait and switch

https://www.0xsid.com/blog/antigravity-bait-n-switch
600•ssiddharth•15h ago•281 comments

News outlets are limiting the Internet Archive’s access to their journalism

https://www.niemanlab.org/2026/05/more-than-340-local-news-outlets-are-limiting-the-internet-arch...
250•jaredwiener•12h ago•84 comments

Throwing AI-generated walls of text into conversations

https://noslopgrenade.com/
546•napolux•19h ago•319 comments

Show HN: Spec-Driven Development Workflow for Claude Code

10•sermakarevich•1h ago•2 comments

We're testing new ad formats in Search and expanding our Direct Offers pilot

https://blog.google/products/ads-commerce/google-marketing-live-search-ads/
583•sofumel•19h ago•525 comments

ParadeDB (YC S23) Is Hiring Distributed Systems/Platform Engineers

1•philippemnoel•12h ago

Show HN: Agent.email – sign up via curl, claim with a human OTP

71•adisingh13•12h ago•79 comments

Mounting git commits as folders with NFS (2023)

https://jvns.ca/blog/2023/12/04/mounting-git-commits-as-folders-with-nfs/
95•pvtmert•2d ago•46 comments

BBEdit 16

https://www.barebones.com/products/bbedit/bbedit16.html
295•qaz_plm•10h ago•87 comments

The IBM-ification of Google?

https://zeroshot.bearblog.dev/google-is-shattering-under-its-own-weight-the-ibm-ification-of-google/
141•sabatonfan•5h ago•112 comments