Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Decimal string without decimals, dots or commas in any culture

If I have a simple decimal in C#, and I want to ToString it without any dots, commas or decimals in any culture - how do i do it?

I tried the ToString("N0") with invariantculture which removes decimals, but it adds "." in my language.

What is the best way to do this?

like image 450
Lars Holdgaard Avatar asked Nov 26 '25 12:11

Lars Holdgaard


1 Answers

You haven't clarified in the comments yet, but I suspect you want something like this?

3.14 -> 3

5.34543543 -> 5

If that is correct then you simply need to cast your decimal to an int which would strip the precision off and give you just the whole number.

string someString = ((int)someDecimal).ToString();

If you find yourself repeating this logic often you can make a simple extension method to keep it DRY:

public static class DecimalExtensions
{
    public static string ToIntString(this decimal input)
    {
        return ((int)input).ToString();
    }
}

And simply call it like so:

string someString = someDecimal.ToIntString();

Simple fiddle here

EDIT

@HansPassant actually gave the simplest solution in the comments and I feel silly for not remembering:

string someString = someDecimal.ToString("F0", System.Globalization.CultureInfo.InvariantCulture);

This is a much better answer and if Hans posts an answer I suggest marking theirs as the solution.

like image 159
maccettura Avatar answered Nov 28 '25 02:11

maccettura



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!