Index: trunk/src/stl/string.cc
===================================================================
--- trunk/src/stl/string.cc	(revision 378)
+++ trunk/src/stl/string.cc	(revision 380)
@@ -97,10 +97,9 @@
 {
 #if NV_COMPILER == NV_MSVC
-	sprintf_s( str, 64, "%.*g", 6, n );
+	int result = sprintf_s( str, 64, "%.*g", 6, n );
 #else
-	snprintf( str, 64, "%.*g", 6, n );
+	int result = snprintf( str, 64, "%.*g", 6, n );
 #endif
-	sprintf( str, "%g", n );
-	return strlen( str );
+	return result > 0 ? ( nv::size_t )result : 0;
 }
 
@@ -108,9 +107,9 @@
 {
 #if NV_COMPILER == NV_MSVC
-	sprintf_s( str, 64, "%.*g", 6, n );
+	int result = sprintf_s( str, 64, "%.*g", 6, n );
 #else
-	snprintf( str, 64, "%.*g", 6, n );
+	int result = snprintf( str, 64, "%.*g", 6, n );
 #endif
-	return strlen( str );
+	return result > 0 ? ( nv::size_t )result : 0;
 }
 
@@ -162,5 +161,5 @@
 	while ( *s >= '0' && *s <= '9' )
 	{
-		result = ( result * 10 ) + ( *s - '0' );
+		result = ( result * 10 ) + (uint32)( *s - '0' );
 		++s;
 	}
@@ -175,5 +174,5 @@
 	while ( *s >= '0' && *s <= '9' )
 	{
-		result = ( result * 10 ) + ( *s - '0' );
+		result = ( result * 10 ) + (uint32)( *s - '0' );
 		++s;
 	}
