Another take on decimal data types
rumbu
rumbu at rumbu.ro
Sat Jan 13 17:46:15 UTC 2018
On Saturday, 13 January 2018 at 17:19:31 UTC, kdevel wrote:
> How can I convert a decimalX to float/double/real?
Implicit conversion is not available at library level, D does not
have an implicit conversion operator;
Subtracting decimalX - real will result in a decimalX. This was a
design decision, but I'm open to suggestions.
The following code works:
real r;
for (r = 1; r < 6; r += .1L) {
decimal128 d = r;
auto dsin = sin (d);
auto rsin = sin (r);
auto delta = dsin - rsin; //delta is decimal128
writefln ("%9.2f %30.24f %30.24f %12.4g", r, rsin, dsin,
delta);
}
if you really need to convert decimalX values to floating point
counterparts, you'll need to cast them:
x = cast(real)somedecimalvalue;
(but update your files before this, I discovered a bug in opCast)
More information about the Digitalmars-d-announce
mailing list