ICU-20351 A few more MSVC warning cleanups. (Mostly adding static_cast)
diff --git a/icu4c/source/i18n/formattedval_iterimpl.cpp b/icu4c/source/i18n/formattedval_iterimpl.cpp
index 0b148bd..75328fa 100644
--- a/icu4c/source/i18n/formattedval_iterimpl.cpp
+++ b/icu4c/source/i18n/formattedval_iterimpl.cpp
@@ -47,7 +47,7 @@
         UErrorCode&) const {
     U_ASSERT(fFields.size() % 4 == 0);
     int32_t numFields = fFields.size() / 4;
-    int32_t i = cfpos.getInt64IterationContext();
+    int32_t i = static_cast<int32_t>(cfpos.getInt64IterationContext());
     for (; i < numFields; i++) {
         UFieldCategory category = static_cast<UFieldCategory>(fFields.elementAti(i * 4));
         int32_t field = fFields.elementAti(i * 4 + 1);
diff --git a/icu4c/source/test/cintltst/cnumtst.c b/icu4c/source/test/cintltst/cnumtst.c
index 34d15d3..0abdd67 100644
--- a/icu4c/source/test/cintltst/cnumtst.c
+++ b/icu4c/source/test/cintltst/cnumtst.c
@@ -2323,13 +2323,13 @@
     assertSuccess("Creating UNumberFormat", &status);
     double result = unum_parseDouble(fmt, u"1e2", -1, NULL, &status);
     assertSuccess("Parsing with UNumberFormat, case insensitive", &status);
-    assertIntEquals("Result with case sensitive", 100, result);
+    assertIntEquals("Result with case sensitive", 100, (int64_t)result);
     unum_setAttribute(fmt, UNUM_PARSE_CASE_SENSITIVE, 1);
     int32_t ppos = 0;
     result = unum_parseDouble(fmt, u"1e2", -1, &ppos, &status);
     assertSuccess("Parsing with UNumberFormat, case sensitive", &status);
     assertIntEquals("Position with case sensitive", 1, ppos);
-    assertIntEquals("Result with case sensitive", 1, result);
+    assertIntEquals("Result with case sensitive", 1, (int64_t)result);
     unum_close(fmt);
 }
 
diff --git a/icu4c/source/test/intltest/localebuildertest.cpp b/icu4c/source/test/intltest/localebuildertest.cpp
index f99057f..cf3bd74 100644
--- a/icu4c/source/test/intltest/localebuildertest.cpp
+++ b/icu4c/source/test/intltest/localebuildertest.cpp
@@ -1500,7 +1500,7 @@
     };
 
     const char * aToZ = "abcdefghijklmnopqrstuvwxyz";
-    const int32_t aToZLen = uprv_strlen(aToZ);
+    const int32_t aToZLen = static_cast<int32_t>(uprv_strlen(aToZ));
     int32_t i = 0;
     for (const char* extension : wellFormedExtensions) {
         char ch = aToZ[i];
@@ -1517,7 +1517,7 @@
 
     const char* someChars =
         "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()-_=+;:,.<>?";
-    const int32_t someCharsLen = uprv_strlen(someChars);
+    const int32_t someCharsLen = static_cast<int32_t>(uprv_strlen(someChars));
     for (int32_t i = 0; i < someCharsLen; i++) {
         char ch = someChars[i];
         UErrorCode status = U_ZERO_ERROR;
@@ -1553,7 +1553,7 @@
         "87654321-a-0-3",  // First subtag too long
     };
     const char * aToZ = "abcdefghijklmnopqrstuvwxyz";
-    const int32_t aToZLen = uprv_strlen(aToZ);
+    const int32_t aToZLen = static_cast<int32_t>(uprv_strlen(aToZ));
     int32_t i = 0;
     for (const char* ill : illFormed) {
         char ch = aToZ[i];