Reputation: 6008
Basically I'm realizing that my application is using commas instead of decimals, and i NEVER want to allow this. Anyone know how I can correct? I can't find one thing via google that is 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);
Upvotes: 6
Views: 965
Reputation: 726579
You can use the other overload:
return String.Format(
CultureInfo.InvariantCulture // <<== That's 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 way of calling ensures that the invariant culture is being passed as the format provider to the String.Format
, ensuring that you get dots for numbers, dollars for currency symbols, English for names of the months and days, and so on.
Upvotes: 9
Reputation: 4007
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)
Upvotes: 1