What is the best way to format a decimal amount to string for UI display in the correct culture info?
Format decimal to string in correct culture info
Asked Answered
Add a format to the ToString: myDecimal.ToString("#.00")
or myDecimal.ToString("C")
.
For a nullable decimal (decimal?
) you will need to use the .Value property (myNullableDecimal.Value.ToString("C")
) or cast the value to a plain (non-nullable) decimal. Be sure not to do this when the value is null
or you will get an exception!
See the documentation for Standard or Custom numeric format strings.
nHibernate property was Decimal? therefoer the format option was not available on toString method. Now creating decimal variable and using your answer and works a treat. cheers! –
Incorporator
if it's a Nullable<decimal> then you could either user the .Value property or cast to decimal (if you are sure it's not null) –
Weep
the link is broken –
Flush
@WeaponX - fixed. Thanks for the heads-up. –
Weep
Why not decimalVar.ToString("F2", CultureInfo.CurrentCulture);
. For format strings (the "F2" part) and what they do, see Standard Numeric Format Strings and Custom Numeric Format Strings
Also, if you want to use a culture specified by the user you can use:
string userInfo = "en-US";
yourDecimal.ToString("N2", CultureInfo.CreateSpecificCulture(userInfo));
or
yourDecimal.ToString("N2", new CultureInfo(userInfo));
use:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
so what? He is not asking for dynamic cultureInfo. –
Vietnamese
JavaScript is not 'Global' aware, so I used .ToString("#.00", New CultureInfo("en-GB", False)) –
Mathis
© 2022 - 2024 — McMap. All rights reserved.
myDecimal.ToString()
? – Knowhow