ICU-13672 Replacing % and / with std::div in toNumberString function.
authorShane Carr <shane@unicode.org>
Thu, 5 Apr 2018 22:00:10 +0000 (22:00 +0000)
committerShane Carr <shane@unicode.org>
Thu, 5 Apr 2018 22:00:10 +0000 (22:00 +0000)
X-SVN-Rev: 41200

icu4c/source/i18n/number_decimalquantity.cpp

index c39a998f23ff1129509e62af5cd0d6acfdcc66db..1a3e258384e4ba5cf216c74fc5ba3e6db28a2151 100644 (file)
@@ -9,6 +9,7 @@
 #include <cmath>
 #include "cmemory.h"
 #include <limits>
+#include <stdlib.h>
 #include "putilimp.h"
 #include "number_decimalquantity.h"
 #include "number_roundingutils.h"
@@ -1114,8 +1115,9 @@ UnicodeString DecimalQuantity::toNumberString() const {
     }
     int32_t insertIndex = result.length();
     while (_scale > 0) {
-        result.insert(insertIndex, u'0' + (_scale % 10));
-        _scale /= 10;
+        std::div_t res = std::div(_scale, 10);
+        result.insert(insertIndex, u'0' + res.rem);
+        _scale = res.quot;
     }
     return result;
 }