View source code
Display the source code in std/math.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
std.math.quantize
- multiple declarations
Function quantize
Round val
to a multiple of unit
. rfunc
specifies the rounding
function to use; by default this is rint
, which uses the current
rounding mode.
Unqual!F quantize(alias rfunc, F)
(
const F val,
const F unit
)
if (is(typeof(rfunc(F .init)) : F) && isFloatingPoint!F);
Example
writeln(12345.6789L .quantize(0.01L)); // 12345.68L
writeln(12345.6789L .quantize!floor(0.01L)); // 12345.67L
writeln(12345.6789L .quantize(22.0L)); // 12342.0L
Example
writeln(12345.6789L .quantize(0)); // 12345.6789L
assert(12345.6789L .quantize(real .infinity) .isNaN);
assert(12345.6789L .quantize(real .nan) .isNaN);
writeln(real .infinity .quantize(0.01L)); // real.infinity
assert(real .infinity .quantize(real .nan) .isNaN);
assert(real .nan .quantize(0.01L) .isNaN);
assert(real .nan .quantize(real .infinity) .isNaN);
assert(real .nan .quantize(real .nan) .isNaN);
Function quantize
Round val
to a multiple of pow(base, exp)
. rfunc
specifies the
rounding function to use; by default this is rint
, which uses the
current rounding mode.
Example
writeln(12345.6789L .quantize!10(-2)); // 12345.68L
writeln(12345.6789L .quantize!(10, -2)); // 12345.68L
writeln(12345.6789L .quantize!(10, floor)(-2)); // 12345.67L
writeln(12345.6789L .quantize!(10, -2, floor)); // 12345.67L
writeln(12345.6789L .quantize!22(1)); // 12342.0L
writeln(12345.6789L .quantize!22); // 12342.0L
Authors
Walter Bright, Don Clugston, Conversion of CEPHES math library to D by Iain Buclaw and David Nadlinger
License
Copyright © 1999-2018 by the D Language Foundation | Page generated by ddox.