]> granicus.if.org Git - icu/commitdiff
ICU-9781 Parsing fractional seconds should truncate (not round) to 3 places (C)
authorPeter Edberg <pedberg@unicode.org>
Sun, 13 Jan 2013 18:54:09 +0000 (18:54 +0000)
committerPeter Edberg <pedberg@unicode.org>
Sun, 13 Jan 2013 18:54:09 +0000 (18:54 +0000)
X-SVN-Rev: 33044

icu4c/source/i18n/smpdtfmt.cpp
icu4c/source/test/intltest/dtfmttst.cpp

index 3b319af65d7ffd30d5450572b0493d91e4c1b35c..c6d489ccc661833e9ce368a2abc9ed42e8832130 100644 (file)
@@ -2689,7 +2689,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
                 a *= 10;
                 i--;
             }
-            value = (value + (a>>1)) / a;
+            value /= a;
         }
         cal.set(UCAL_MILLISECOND, value);
         return pos.getIndex();
index 91d7d45e9358a66afb58b346676bfb166bbe1680..2b997cbe1f3585498ff9a60c19ad9b9dbe44e4e1 100644 (file)
@@ -597,7 +597,7 @@ void DateFormatTest::TestGeneral() {
         "y/M/d H:mm:ss.S", "fp", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.5", "2004 03 10 16:36:31.500",
         "y/M/d H:mm:ss.SS", "fp", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.56", "2004 03 10 16:36:31.560",
         "y/M/d H:mm:ss.SSS", "F", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.567",
-        "y/M/d H:mm:ss.SSSS", "pf", "2004/3/10 16:36:31.5679", "2004 03 10 16:36:31.568", "2004/3/10 16:36:31.5680",
+        "y/M/d H:mm:ss.SSSS", "pf", "2004/3/10 16:36:31.5679", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.5670",
     };
     expect(DATA, ARRAY_SIZE(DATA), Locale("en", "", ""));
 }