Code Monkey home page Code Monkey logo

Comments (2)

klange avatar klange commented on May 24, 2024 1

With the new functionality in float.__format__, you can now use it to implement decimal rounding through the f formatter. For example, to round to 5 decimal digits past the radix point, it should suffice to do float(n.__format__('.5f')). This is not dissimilar to what CPython does to implement float rounding.

To implement truncating behavior, you may pass a sufficiently large precision to __format__ to ensure all digits are represented without rounding (all floats are exactly representable in decimal, though it may take a precision of over 1000 to get all of the digits), and then cut the desired number of digits past the decimal point. Similarly for ceil behavior, you may examine all of the digits after the cut point and determine if any of them are non-zero.

from kuroko.

klange avatar klange commented on May 24, 2024

There is currently no implementation of the builtin round function, nor is there a binding to the libm round function in the math module.

Some references for how Python does this:

  • With ndigits=None, CPython implements float.__round__ through the libm round() function, but then adjusts the results to round halfway points to even values instead of away from zero.
  • With ndigits=something, float.__round__ is implemented through string conversion.

from kuroko.

Related Issues (20)

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.