Comments (2)
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.
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 implementsfloat.__round__
through the libmround()
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)
- `dict` argument compatibility with Python HOT 2
- keyword arguments can't default to themselves HOT 4
- Compile to native code? HOT 2
- Globals should be bound to `function`s, not `codeobject`s HOT 1
- Kuroko 1.3
- missing gamma function when built against musl HOT 4
- dangling pointers to VM stack HOT 4
- [Question] Class field declaration? HOT 2
- [Termux] TypeError: __init__() expects list, not 'list' HOT 14
- [scope] `for` iteration scope HOT 3
- [KEP] Allow using `let` to define local variable in "legacy `for` loop" like Javascript HOT 2
- Externalize core modules HOT 1
- Kuroko 1.6 Roadmap
- Evalaute Profile-Guided Optimization (PGO)
- Local time? HOT 3
- โMissingโ output HOT 13
- Remove/Rename un-namespaced macros
- Could time.*time() silently truncate floats into ints? HOT 1
- Float parsing uses `strtod`, but rline calls `setlocale` HOT 26
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kuroko.