C # - Force String.Format use decimals and never commas

Basically, I understand that my application uses commas instead of decimals, and I NEVER want to allow this. Does anyone know how I can fix it? I can't find one thing through google to force decimals, it's all about forcing commas.

return String.Format("{0}f, {1}f, {2}f, {3}f, {4}f, {5}f, {6}f, {7}f, {8}f, {9}f, {10}f, {11}f, {12}f, {13}f, {14}f, {15}f", M.M11, M.M12, M.M13, M.M14, M.M21, M.M22, M.M23, M.M24, M.M31, M.M32, M.M33, M.M34, M.OffsetX, M.OffsetY, M.OffsetZ, M.M44); 
+6
source share
2 answers

You can use another overload:

 return String.Format( CultureInfo.InvariantCulture // <<== That the magic , "{0}f, {1}f, {2}f, {3}f, {4}f, {5}f, {6}f, {7}f, {8}f, {9}f, {10}f, {11}f, {12}f, {13}f, {14}f, {15}f" , M.M11, M.M12, M.M13, M.M14, M.M21, M.M22, M.M23, M.M24, M.M31, M.M32, M.M33, M.M34, M.OffsetX, M.OffsetY, M.OffsetZ, M.M44 ); 

This invocation method ensures that the invariant culture is passed as the format provider to String.Format , ensuring that you get points for numbers, dollars for currency symbols, English for names of months and days, etc.

+9
source

Try setting the culture to US English for the String.Format function:

 String.Format(new CultureInfo("en-US"), "{0}f, {1}f, {2}f", etc) 
+1
source

All Articles