How do I convert string to Indian Money format?
Solution 1
If fare
is any of int
, long
, decimal
, float
or double
then I get the expected output of:
₹ 12,34,567.00
.
I suspect your fare
is actually a string
; strings are not formatted by string.Format
: they are already a string: there is no value to format. So: parse it first (using whatever is appropriate, maybe an invariant decimal parse), then format the parsed value; for example:
// here we assume that `fare` is actually a `string`
string fare = "1234567";
decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture);
CultureInfo hindi = new CultureInfo("hi-IN");
string text = string.Format(hindi, "{0:c}", parsed);
Edit re comments; to get just the formatted value without the currency symbol or decimal portion:
string text = string.Format(hindi, "{0:#,#}", value);
Solution 2
Try this
int myvalue = 123456789;
Console.WriteLine(myvalue.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN")));//output;- 12,34,56,789
Related videos on Youtube
Balraj Singh
Energetic software engineer with 8+ years experience developing simple & anti-fragile software for high-volume businesses. Improved Mobile App's stability and responsiveness by incorporating patterns & practices. Wrote 7+ numbers of blogs on medium related to general pattern & practices of programming skills.
Updated on July 11, 2022Comments
-
Balraj Singh almost 2 years
I am trying to convert string to India Money format like if input is "1234567" then output should come as "12,34,567"
I have written following code but its not giving the expected output.
CultureInfo hindi = new CultureInfo("hi-IN"); string text = string.Format(hindi, "{0:c}", fare); return text;
can anyone tell me how to do this?
-
Marc Gravell over 11 yearsI get the output
₹ 12,34,567.00
, which seems correct; what data type isfare
?
-
-
Balraj Singh over 11 yearsActually i am looking for an output in string format like 12,34,567 and not like ₹ 12,34,567.00. the above solution gives me the latter answer.
-
Marc Gravell over 11 years@BalrajSingh then.... why did you specify
c
? Simply:12,34,567
is not the currency format for hi-IN. -
Marc Gravell over 11 years@BalrajSingh I have added an example to show a way of getting that output