• 1 Post
  • 243 Comments
Joined 1 year ago
cake
Cake day: November 24th, 2023

help-circle

  • Good and bad use-cases for floats

    Floats can be used everywhere where it doesn’t matter that you can’t store a 100% accurate base ten representations. For example positions and speeds in 3D games and animations, “analog” values like temperatures, speed of a vehicle, geo positions with longitude and latitude, a persons weight or heart pressure. In fact if you develop games there is no way around 32 bit floats because GPUs are f32 number crunching beasts. Modern 3D games wouldn’t be possible without all those fast f32 calculations.

    You shouldn’t use binary floats if you need or expect accurate base ten calculations (addition, subtraction, multiplication, - note that divisions also introduce errors quickly in decimal types) and for dimensions that have a smallest unit that can’t be broken down, for example like money. If you need to handle money just store the amount of cents as integers and only divide by 100 in your display function.

    This is exactly my point. Don’t use floats when you need to get accurate stuff, but use it when you need a “feel” for it







  • Mint is my favourite distro. Is everything I want from my computer.

    … Except the Nvidia support. I need the actual proprietary driver for cuda and it’s not the easiest of rides.

    (I switched to Nobara for better support and now the drivers memory leak. I need the courage to distrohop again)













  • Sadly it doesn’t fix the bad documentation problem. I often don’t care that a field is special and either give a string or number. This is fine.

    What is not fine, and which should sentence you to eternal punishment, is to not clearly document it.

    Don’t you love when you publish a crate, have tested it on thousands of returned objects, only for the first issue be “field is sometimes null/other type?”. You really start questioning everything about the API, and sometimes you’d rather parse it as serde::Value and call it a day.