mirror of
https://github.com/fastfloat/fast_float.git
synced 2026-02-12 21:29:53 +08:00
In some cases, Visual Studio, when compiling 32-bit binaries, gets
0*something == -0 even when the 'something' is positive, when the system is not set to compile to nearest.
This commit is contained in:
parent
80400d270e
commit
70d8e0ad0e
@ -202,7 +202,7 @@ from_chars_result_t<UC> from_chars_advanced(UC const * first, UC const * last,
|
|||||||
// We do not have that fegetround() == FE_TONEAREST.
|
// We do not have that fegetround() == FE_TONEAREST.
|
||||||
// Next is a modified Clinger's fast path, inspired by Jakub Jelínek's proposal
|
// Next is a modified Clinger's fast path, inspired by Jakub Jelínek's proposal
|
||||||
if (pns.exponent >= 0 && pns.mantissa <=binary_format<T>::max_mantissa_fast_path(pns.exponent)) {
|
if (pns.exponent >= 0 && pns.mantissa <=binary_format<T>::max_mantissa_fast_path(pns.exponent)) {
|
||||||
#if defined(__clang__)
|
#if defined(__clang__) || defined(FASTFLOAT_32BIT)
|
||||||
// Clang may map 0 to -0.0 when fegetround() == FE_DOWNWARD
|
// Clang may map 0 to -0.0 when fegetround() == FE_DOWNWARD
|
||||||
if(pns.mantissa == 0) {
|
if(pns.mantissa == 0) {
|
||||||
value = pns.negative ? -0. : 0.;
|
value = pns.negative ? -0. : 0.;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user