From 8fda72f6d8e442c5382f21cdd884e2c962bb53bd Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 11 Dec 2019 13:25:32 -0800 Subject: [PATCH] ICU-20877 i18n: Don't use C++11 math It's not available with some libc implementations. Specifically, BIONIC and uClibc-ng. uprv_ variants are available. Signed-off-by: Rosen Penev --- i18n/decimfmt.cpp | 2 +- i18n/number_decimalquantity.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/decimfmt.cpp b/i18n/decimfmt.cpp index 4015250e273..0cbaca7e099 100644 --- a/i18n/decimfmt.cpp +++ b/i18n/decimfmt.cpp @@ -1801,7 +1801,7 @@ bool DecimalFormat::fastFormatDouble(double input, UnicodeString& output) const return false; } if (std::isnan(input) - || std::trunc(input) != input + || uprv_trunc(input) != input || input <= INT32_MIN || input > INT32_MAX) { return false; diff --git a/i18n/number_decimalquantity.cpp b/i18n/number_decimalquantity.cpp index abbc23de032..778feb141b4 100644 --- a/i18n/number_decimalquantity.cpp +++ b/i18n/number_decimalquantity.cpp @@ -452,7 +452,7 @@ void DecimalQuantity::_setToDoubleFast(double n) { for (; i <= -22; i += 22) n /= 1e22; n /= DOUBLE_MULTIPLIERS[-i]; } - auto result = static_cast(std::round(n)); + auto result = static_cast(uprv_round(n)); if (result != 0) { _setToLong(result); scale -= fracLength;