views:

336

answers:

3

Hello everyone,

Why doesn't C++ support unsigned double syntax?

Thanks in advance

+19  A: 

Because typical floating point formats don't support unsigned numbers. See, for instance, this list of IEEE 754 formats.

Adding a numerical format that isn't supported by common hardware just makes life difficult for compiler writers, and is probably not considered worth the effort.

unwind
+3  A: 

Because most floating point hardware doesn't support unsigned types. Some graphics cards do work with unsigned floating point, but it's generally internal, not really visible to a program or user.

Jerry Coffin
+3  A: 

Unsigned integers gain an extra bit of precision and have slightly different bit-wise semantics to signed integers. Floats and doubles always reserve a bit for the sign (on most hardware) and have no bit-wise semantics, so there's no real benefit in having an unsigned real type.

Marcelo Cantos
You theoretically *could* use that bit for the mantissa or exponent, though, increasing either range or accuracy.
Joey