0Day Forums
Difference between Char.IsDigit() and Char.IsNumber() in C# - Printable Version

+- 0Day Forums (https://0day.red)
+-- Forum: Coding (https://0day.red/Forum-Coding)
+--- Forum: C# (https://0day.red/Forum-C)
+--- Thread: Difference between Char.IsDigit() and Char.IsNumber() in C# (/Thread-Difference-between-Char-IsDigit-and-Char-IsNumber-in-C)



Difference between Char.IsDigit() and Char.IsNumber() in C# - ethenfgbqyryjd - 07-24-2023

What's the difference between `Char.IsDigit()` and `Char.IsNumber()` in C#?


RE: Difference between Char.IsDigit() and Char.IsNumber() in C# - ophicleide188947 - 07-24-2023

`Char.IsDigit()` is a subset of `Char.IsNumber()`.

Some of the characters that are 'numeric' but not digits include 0x00b2 and 0x00b3 which are superscripted 2 and 3 ('²' and '³') and the glyphs that are fractions such as '¼', '½', and '¾'.

Note that there are quite a few characters that `IsDigit()` returns `true` for that are not in the ASCII range of 0x30 to 0x39, such as these Thai digit characters: '๐' '๑' '๒' '๓' '๔' '๕' '๖' '๗' '๘' '๙'.

This snippet of code tells you which code points differ:

static private void test()
{
for (int i = 0; i <= 0xffff; ++i)
{
char c = (char) i;

if (Char.IsDigit( c) != Char.IsNumber( c)) {
Console.WriteLine( "Char value {0:x} IsDigit() = {1}, IsNumber() = {2}", i, Char.IsDigit( c), Char.IsNumber( c));
}
}
}




RE: Difference between Char.IsDigit() and Char.IsNumber() in C# - hiedihiemal203 - 07-24-2023

`IsNumber(x)` will sometimes return `true` for results average person would not consider to be a number and here is why.

C# groups characters into `UnicodeCategory` where numbers fall not into a single but 3 different categories:

1. UnicodeCategory.DecimalDigitNumber

> Decimal digit character, that is, a character in the range 0 through
> 9. Signified by the Unicode designation "Nd" (number, decimal digit). The value is 8.

2. UnicodeCategory.OtherNumber

> Number that is neither a decimal digit nor a letter number, for
> example, the fraction 1/2. The indicator is signified by the Unicode
> designation "No" (number, other). The value is 10.

3. UnicodeCategory.LetterNumber

> Number represented by a letter, instead of a decimal digit, for
> example, the Roman numeral for five, which is "V". The indicator is
> signified by the Unicode designation "Nl" (number, letter). The value
> is 9.

Anything that falls in to one above will return `true` for `IsNumber()`. For is `IsDigit()` it will only be `UnicodeCategory.DecimalDigitNumber`.

**I wrote this bit of code to indicate which is which:** (Table isn't full due to allowed post size, but you should be able to generate it and it's only for example purposes anyway)

[Test]
public void IsNumberTest()
{
var numberLikes = new[] { UnicodeCategory.DecimalDigitNumber, UnicodeCategory.OtherNumber, UnicodeCategory.LetterNumber };
for (var i = 0; i < 0xffff; i++)
{
var c = Char.ConvertFromUtf32(i).ToCharArray()[0];
if (numberLikes.Contains(Char.GetUnicodeCategory©))
{
File.AppendAllText("IsNumberLike.txt", string.Format("{0},{1},{2},&#{3};,{4},{5}\n", i, c, Char.GetUnicodeCategory©, i, Char.IsNumber©, Char.IsDigit©));
}
}
}


Result looks following: As you can see there is stuff that one would not expect to be 'number'.


+------+----+--------------------+----------+------+-------+
| int |symbol| UnicodeCategory | Html |IsNumber|IsDigit|
+-------+---+--------------------+----------+------+-------+
| 48 | 0 | DecimalDigitNumber | 0 | True | True |
| 49 | 1 | DecimalDigitNumber | 1 | True | True |
| 50 | 2 | DecimalDigitNumber | 2 | True | True |
| 51 | 3 | DecimalDigitNumber | 3 | True | True |
| 52 | 4 | DecimalDigitNumber | 4 | True | True |
| 53 | 5 | DecimalDigitNumber | 5 | True | True |
| 54 | 6 | DecimalDigitNumber | 6 | True | True |
| 55 | 7 | DecimalDigitNumber | 7 | True | True |
| 56 | 8 | DecimalDigitNumber | 8 | True | True |
| 57 | 9 | DecimalDigitNumber | 9 | True | True |
| 178 | ² | OtherNumber | ² | True | False |
| 179 | ³ | OtherNumber | ³ | True | False |
| 185 | ¹ | OtherNumber | ¹ | True | False |
| 188 | ¼ | OtherNumber | ¼ | True | False |
| 189 | ½ | OtherNumber | ½ | True | False |
| 190 | ¾ | OtherNumber | ¾ | True | False |
| 1632 | ٠ | DecimalDigitNumber | ٠ | True | True |
| 1633 | ١ | DecimalDigitNumber | ١ | True | True |
| 1634 | ٢ | DecimalDigitNumber | ٢ | True | True |
| 1635 | ٣ | DecimalDigitNumber | ٣ | True | True |
| 1636 | ٤ | DecimalDigitNumber | ٤ | True | True |
| 1637 | ٥ | DecimalDigitNumber | ٥ | True | True |
| 1638 | ٦ | DecimalDigitNumber | ٦ | True | True |
| 1639 | ٧ | DecimalDigitNumber | ٧ | True | True |
| 1640 | ٨ | DecimalDigitNumber | ٨ | True | True |
| 1641 | ٩ | DecimalDigitNumber | ٩ | True | True |
| 1776 | ۰ | DecimalDigitNumber | ۰ | True | True |
| 1777 | ۱ | DecimalDigitNumber | ۱ | True | True |
| 1778 | ۲ | DecimalDigitNumber | ۲ | True | True |
| 1779 | ۳ | DecimalDigitNumber | ۳ | True | True |
| 1780 | ۴ | DecimalDigitNumber | ۴ | True | True |
| 1781 | ۵ | DecimalDigitNumber | ۵ | True | True |
| 1782 | ۶ | DecimalDigitNumber | ۶ | True | True |
| 1783 | ۷ | DecimalDigitNumber | ۷ | True | True |
| 1784 | ۸ | DecimalDigitNumber | ۸ | True | True |
| 1785 | ۹ | DecimalDigitNumber | ۹ | True | True |
| 1984 | ߀ | DecimalDigitNumber | ߀ | True | True |
| 1985 | ߁ | DecimalDigitNumber | ߁ | True | True |
| 1986 | ߂ | DecimalDigitNumber | ߂ | True | True |
| 1987 | ߃ | DecimalDigitNumber | ߃ | True | True |
| 1988 | ߄ | DecimalDigitNumber | ߄ | True | True |
| 1989 | ߅ | DecimalDigitNumber | ߅ | True | True |
| 1990 | ߆ | DecimalDigitNumber | ߆ | True | True |
| 1991 | ߇ | DecimalDigitNumber | ߇ | True | True |
| 1992 | ߈ | DecimalDigitNumber | ߈ | True | True |
| 1993 | ߉ | DecimalDigitNumber | ߉ | True | True |
| 2406 | ० | DecimalDigitNumber | ० | True | True |
| 2407 | १ | DecimalDigitNumber | १ | True | True |
| 2408 | २ | DecimalDigitNumber | २ | True | True |
| 2409 | ३ | DecimalDigitNumber | ३ | True | True |
| 2410 | ४ | DecimalDigitNumber | ४ | True | True |
| 2411 | ५ | DecimalDigitNumber | ५ | True | True |
| 2412 | ६ | DecimalDigitNumber | ६ | True | True |
| 2413 | ७ | DecimalDigitNumber | ७ | True | True |
| 2414 | ८ | DecimalDigitNumber | ८ | True | True |
| 2415 | ९ | DecimalDigitNumber | ९ | True | True |
| 2534 | ০ | DecimalDigitNumber | ০ | True | True |
| 2535 | ১ | DecimalDigitNumber | ১ | True | True |
| 2536 | ২ | DecimalDigitNumber | ২ | True | True |
| 2537 | ৩ | DecimalDigitNumber | ৩ | True | True |
| 2538 | ৪ | DecimalDigitNumber | ৪ | True | True |
| 2539 | ৫ | DecimalDigitNumber | ৫ | True | True |
| 2540 | ৬ | DecimalDigitNumber | ৬ | True | True |
| 2541 | ৭ | DecimalDigitNumber | ৭ | True | True |
| 2542 | ৮ | DecimalDigitNumber | ৮ | True | True |
| 2543 | ৯ | DecimalDigitNumber | ৯ | True | True |
| 2548 | ৴ | OtherNumber | ৴ | True | False |
| 2549 | ৵ | OtherNumber | ৵ | True | False |
| 2550 | ৶ | OtherNumber | ৶ | True | False |
| 2551 | ৷ | OtherNumber | ৷ | True | False |
| 2552 | ৸ | OtherNumber | ৸ | True | False |
| 2553 | ৹ | OtherNumber | ৹ | True | False |
| 2662 | ੦ | DecimalDigitNumber | ੦ | True | True |
| 2663 | ੧ | DecimalDigitNumber | ੧ | True | True |
| 2664 | ੨ | DecimalDigitNumber | ੨ | True | True |
| 2665 | ੩ | DecimalDigitNumber | ੩ | True | True |
| 2666 | ੪ | DecimalDigitNumber | ੪ | True | True |
| 2667 | ੫ | DecimalDigitNumber | ੫ | True | True |
| 2668 | ੬ | DecimalDigitNumber | ੬ | True | True |
| 2669 | ੭ | DecimalDigitNumber | ੭ | True | True |
| 2670 | ੮ | DecimalDigitNumber | ੮ | True | True |
| 2671 | ੯ | DecimalDigitNumber | ੯ | True | True |
| 2790 | ૦ | DecimalDigitNumber | ૦ | True | True |
| 2791 | ૧ | DecimalDigitNumber | ૧ | True | True |
| 2792 | ૨ | DecimalDigitNumber | ૨ | True | True |
| 2793 | ૩ | DecimalDigitNumber | ૩ | True | True |
| 2794 | ૪ | DecimalDigitNumber | ૪ | True | True |
| 2795 | ૫ | DecimalDigitNumber | ૫ | True | True |
| 2796 | ૬ | DecimalDigitNumber | ૬ | True | True |
| 2797 | ૭ | DecimalDigitNumber | ૭ | True | True |
| 2798 | ૮ | DecimalDigitNumber | ૮ | True | True |
| 2799 | ૯ | DecimalDigitNumber | ૯ | True | True |
| 2918 | ୦ | DecimalDigitNumber | ୦ | True | True |
| 2919 | ୧ | DecimalDigitNumber | ୧ | True | True |
| 2920 | ୨ | DecimalDigitNumber | ୨ | True | True |
| 2921 | ୩ | DecimalDigitNumber | ୩ | True | True |
| 2922 | ୪ | DecimalDigitNumber | ୪ | True | True |
| 2923 | ୫ | DecimalDigitNumber | ୫ | True | True |
| 2924 | ୬ | DecimalDigitNumber | ୬ | True | True |
| 2925 | ୭ | DecimalDigitNumber | ୭ | True | True |
| 2926 | ୮ | DecimalDigitNumber | ୮ | True | True |
| 2927 | ୯ | DecimalDigitNumber | ୯ | True | True |
| 2930 | ୲ | OtherNumber | ୲ | True | False |
| 2931 | ୳ | OtherNumber | ୳ | True | False |
| 2932 | ୴ | OtherNumber | ୴ | True | False |
| 2933 | ୵ | OtherNumber | ୵ | True | False |
| 2934 | ୶ | OtherNumber | ୶ | True | False |
| 2935 | ୷ | OtherNumber | ୷ | True | False |
| 3046 | ௦ | DecimalDigitNumber | ௦ | True | True |
| 3047 | ௧ | DecimalDigitNumber | ௧ | True | True |
| 3048 | ௨ | DecimalDigitNumber | ௨ | True | True |
| 3049 | ௩ | DecimalDigitNumber | ௩ | True | True |
| 3050 | ௪ | DecimalDigitNumber | ௪ | True | True |
| 3051 | ௫ | DecimalDigitNumber | ௫ | True | True |
| 3052 | ௬ | DecimalDigitNumber | ௬ | True | True |
| 3053 | ௭ | DecimalDigitNumber | ௭ | True | True |
| 3054 | ௮ | DecimalDigitNumber | ௮ | True | True |
| 3055 | ௯ | DecimalDigitNumber | ௯ | True | True |
| 3056 | ௰ | OtherNumber | ௰ | True | False |
| 3057 | ௱ | OtherNumber | ௱ | True | False |
| 3058 | ௲ | OtherNumber | ௲ | True | False |
| 3174 | ౦ | DecimalDigitNumber | ౦ | True | True |
| 3175 | ౧ | DecimalDigitNumber | ౧ | True | True |
| 3176 | ౨ | DecimalDigitNumber | ౨ | True | True |
| 3177 | ౩ | DecimalDigitNumber | ౩ | True | True |
| 3178 | ౪ | DecimalDigitNumber | ౪ | True | True |
| 3179 | ౫ | DecimalDigitNumber | ౫ | True | True |
| 3180 | ౬ | DecimalDigitNumber | ౬ | True | True |
| 3181 | ౭ | DecimalDigitNumber | ౭ | True | True |
| 3182 | ౮ | DecimalDigitNumber | ౮ | True | True |
| 3183 | ౯ | DecimalDigitNumber | ౯ | True | True |
| 3192 | ౸ | OtherNumber | ౸ | True | False |
| 3193 | ౹ | OtherNumber | ౹ | True | False |
| 3194 | ౺ | OtherNumber | ౺ | True | False |
| 3195 | ౻ | OtherNumber | ౻ | True | False |
| 3196 | ౼ | OtherNumber | ౼ | True | False |
| 3197 | ౽ | OtherNumber | ౽ | True | False |
| 3198 | ౾ | OtherNumber | ౾ | True | False |
| 3302 | ೦ | DecimalDigitNumber | ೦ | True | True |
| 3303 | ೧ | DecimalDigitNumber | ೧ | True | True |
| 3304 | ೨ | DecimalDigitNumber | ೨ | True | True |
| 3305 | ೩ | DecimalDigitNumber | ೩ | True | True |
| 3306 | ೪ | DecimalDigitNumber | ೪ | True | True |
| 3307 | ೫ | DecimalDigitNumber | ೫ | True | True |
| 3308 | ೬ | DecimalDigitNumber | ೬ | True | True |
| 3309 | ೭ | DecimalDigitNumber | ೭ | True | True |
| 3310 | ೮ | DecimalDigitNumber | ೮ | True | True |
| 3311 | ೯ | DecimalDigitNumber | ೯ | True | True |
| 3430 | ൦ | DecimalDigitNumber | ൦ | True | True |
| 3431 | ൧ | DecimalDigitNumber | ൧ | True | True |
| 3432 | ൨ | DecimalDigitNumber | ൨ | True | True |
| 3433 | ൩ | DecimalDigitNumber | ൩ | True | True |
| 3434 | ൪ | DecimalDigitNumber | ൪ | True | True |
| 3435 | ൫ | DecimalDigitNumber | ൫ | True | True |
| 3436 | ൬ | DecimalDigitNumber | ൬ | True | True |
| 3437 | ൭ | DecimalDigitNumber | ൭ | True | True |
| 3438 | ൮ | DecimalDigitNumber | ൮ | True | True |
| 3439 | ൯ | DecimalDigitNumber | ൯ | True | True |
| 3440 | ൰ | OtherNumber | ൰ | True | False |
| 3441 | ൱ | OtherNumber | ൱ | True | False |
| 3442 | ൲ | OtherNumber | ൲ | True | False |
| 3443 | ൳ | OtherNumber | ൳ | True | False |
| 3444 | ൴ | OtherNumber | ൴ | True | False |
| 3445 | ൵ | OtherNumber | ൵ | True | False |
| 3664 | ๐ | DecimalDigitNumber | ๐ | True | True |
| 3665 | ๑ | DecimalDigitNumber | ๑ | True | True |
| 3666 | ๒ | DecimalDigitNumber | ๒ | True | True |
| 3667 | ๓ | DecimalDigitNumber | ๓ | True | True |
| 3668 | ๔ | DecimalDigitNumber | ๔ | True | True |
| 3669 | ๕ | DecimalDigitNumber | ๕ | True | True |
| 3670 | ๖ | DecimalDigitNumber | ๖ | True | True |
| 3671 | ๗ | DecimalDigitNumber | ๗ | True | True |
| 3672 | ๘ | DecimalDigitNumber | ๘ | True | True |
| 3673 | ๙ | DecimalDigitNumber | ๙ | True | True |
| 3792 | ໐ | DecimalDigitNumber | ໐ | True | True |
| 3793 | ໑ | DecimalDigitNumber | ໑ | True | True |
| 3794 | ໒ | DecimalDigitNumber | ໒ | True | True |
| 3795 | ໓ | DecimalDigitNumber | ໓ | True | True |
| 3796 | ໔ | DecimalDigitNumber | ໔ | True | True |
| 3797 | ໕ | DecimalDigitNumber | ໕ | True | True |
| 3798 | ໖ | DecimalDigitNumber | ໖ | True | True |
| 3799 | ໗ | DecimalDigitNumber | ໗ | True | True |
| 3800 | ໘ | DecimalDigitNumber | ໘ | True | True |
| 3801 | ໙ | DecimalDigitNumber | ໙ | True | True |
| 3872 | ༠ | DecimalDigitNumber | ༠ | True | True |
| 3873 | ༡ | DecimalDigitNumber | ༡ | True | True |
| 3874 | ༢ | DecimalDigitNumber | ༢ | True | True |
| 3875 | ༣ | DecimalDigitNumber | ༣ | True | True |
| 3876 | ༤ | DecimalDigitNumber | ༤ | True | True |
| 3877 | ༥ | DecimalDigitNumber | ༥ | True | True |
| 3878 | ༦ | DecimalDigitNumber | ༦ | True | True |
| 3879 | ༧ | DecimalDigitNumber | ༧ | True | True |
| 3880 | ༨ | DecimalDigitNumber | ༨ | True | True |
| 3881 | ༩ | DecimalDigitNumber | ༩ | True | True |
| 3882 | ༪ | OtherNumber | ༪ | True | False |
| 3883 | ༫ | OtherNumber | ༫ | True | False |
| 3884 | ༬ | OtherNumber | ༬ | True | False |
| 3885 | ༭ | OtherNumber | ༭ | True | False |
| 3886 | ༮ | OtherNumber | ༮ | True | False |
| 3887 | ༯ | OtherNumber | ༯ | True | False |
| 3888 | ༰ | OtherNumber | ༰ | True | False |
| 3889 | ༱ | OtherNumber | ༱ | True | False |
| 3890 | ༲ | OtherNumber | ༲ | True | False |
| 3891 | ༳ | OtherNumber | ༳ | True | False |
| 4160 | ၀ | DecimalDigitNumber | ၀ | True | True |
| 4161 | ၁ | DecimalDigitNumber | ၁ | True | True |
| 4162 | ၂ | DecimalDigitNumber | ၂ | True | True |
| 4163 | ၃ | DecimalDigitNumber | ၃ | True | True |
| 4164 | ၄ | DecimalDigitNumber | ၄ | True | True |
| 4165 | ၅ | DecimalDigitNumber | ၅ | True | True |
| 4166 | ၆ | DecimalDigitNumber | ၆ | True | True |
| 4167 | ၇ | DecimalDigitNumber | ၇ | True | True |
| 4168 | ၈ | DecimalDigitNumber | ၈ | True | True |
| 4169 | ၉ | DecimalDigitNumber | ၉ | True | True |
| 4240 | ႐ | DecimalDigitNumber | ႐ | True | True |
| 4241 | ႑ | DecimalDigitNumber | ႑ | True | True |
| 4242 | ႒ | DecimalDigitNumber | ႒ | True | True |
| 4243 | ႓ | DecimalDigitNumber | ႓ | True | True |
| 4244 | ႔ | DecimalDigitNumber | ႔ | True | True |
| 4245 | ႕ | DecimalDigitNumber | ႕ | True | True |
| 4246 | ႖ | DecimalDigitNumber | ႖ | True | True |
| 4247 | ႗ | DecimalDigitNumber | ႗ | True | True |
| 4248 | ႘ | DecimalDigitNumber | ႘ | True | True |
| 4249 | ႙ | DecimalDigitNumber | ႙ | True | True |
| 4969 | ፩ | OtherNumber | ፩ | True | False |
| 4970 | ፪ | OtherNumber | ፪ | True | False |
| 4971 | ፫ | OtherNumber | ፫ | True | False |
| 4972 | ፬ | OtherNumber | ፬ | True | False |
| 4973 | ፭ | OtherNumber | ፭ | True | False |
| 4974 | ፮ | OtherNumber | ፮ | True | False |
| 4975 | ፯ | OtherNumber | ፯ | True | False |
| 4976 | ፰ | OtherNumber | ፰ | True | False |
| 4977 | ፱ | OtherNumber | ፱ | True | False |
| 4978 | ፲ | OtherNumber | ፲ | True | False |
| 4979 | ፳ | OtherNumber | ፳ | True | False |
| 4980 | ፴ | OtherNumber | ፴ | True | False |
| 4981 | ፵ | OtherNumber | ፵ | True | False |
| 4982 | ፶ | OtherNumber | ፶ | True | False |
| 4983 | ፷ | OtherNumber | ፷ | True | False |
| 4984 | ፸ | OtherNumber | ፸ | True | False |
| 4985 | ፹ | OtherNumber | ፹ | True | False |
| 4986 | ፺ | OtherNumber | ፺ | True | False |
| 4987 | ፻ | OtherNumber | ፻ | True | False |
| 4988 | ፼ | OtherNumber | ፼ | True | False |
| 5870 | ᛮ | LetterNumber | ᛮ | True | False |
| 5871 | ᛯ | LetterNumber | ᛯ | True | False |
| 5872 | ᛰ | LetterNumber | ᛰ | True | False |
| 6112 | ០ | DecimalDigitNumber | ០ | True | True |
| 6113 | ១ | DecimalDigitNumber | ១ | True | True |
| 6114 | ២ | DecimalDigitNumber | ២ | True | True |
| 6115 | ៣ | DecimalDigitNumber | ៣ | True | True |
| 6116 | ៤ | DecimalDigitNumber | ៤ | True | True |
| 6117 | ៥ | DecimalDigitNumber | ៥ | True | True |
| 6118 | ៦ | DecimalDigitNumber | ៦ | True | True |
| 6119 | ៧ | DecimalDigitNumber | ៧ | True | True |
| 6120 | ៨ | DecimalDigitNumber | ៨ | True | True |
| 6121 | ៩ | DecimalDigitNumber | ៩ | True | True |
| 6128 | ៰ | OtherNumber | ៰ | True | False |
| 6129 | ៱ | OtherNumber | ៱ | True | False |
| 6130 | ៲ | OtherNumber | ៲ | True | False |
| 6131 | ៳ | OtherNumber | ៳ | True | False |
| 6132 | ៴ | OtherNumber | ៴ | True | False |
| 6133 | ៵ | OtherNumber | ៵ | True | False |
| 6134 | ៶ | OtherNumber | ៶ | True | False |
| 6135 | ៷ | OtherNumber | ៷ | True | False |
| 6136 | ៸ | OtherNumber | ៸ | True | False |
| 6137 | ៹ | OtherNumber | ៹ | True | False |
| 6160 | ᠐ | DecimalDigitNumber | ᠐ | True | True |
| 6161 | ᠑ | DecimalDigitNumber | ᠑ | True | True |
| 6162 | ᠒ | DecimalDigitNumber | ᠒ | True | True |
| 6163 | ᠓ | DecimalDigitNumber | ᠓ | True | True |
| 6164 | ᠔ | DecimalDigitNumber | ᠔ | True | True |
| 6165 | ᠕ | DecimalDigitNumber | ᠕ | True | True |
| 6166 | ᠖ | DecimalDigitNumber | ᠖ | True | True |
| 6167 | ᠗ | DecimalDigitNumber | ᠗ | True | True |
| 6168 | ᠘ | DecimalDigitNumber | ᠘ | True | True |
| 6169 | ᠙ | DecimalDigitNumber | ᠙ | True | True |
| 6470 | ᥆ | DecimalDigitNumber | ᥆ | True | True |
| 6471 | ᥇ | DecimalDigitNumber | ᥇ | True | True |
| 6472 | ᥈ | DecimalDigitNumber | ᥈ | True | True |
| 6473 | ᥉ | DecimalDigitNumber | ᥉ | True | True |
| 6474 | ᥊ | DecimalDigitNumber | ᥊ | True | True |
| 6475 | ᥋ | DecimalDigitNumber | ᥋ | True | True |
| 6476 | ᥌ | DecimalDigitNumber | ᥌ | True | True |
| 6477 | ᥍ | DecimalDigitNumber | ᥍ | True | True |
| 6478 | ᥎ | DecimalDigitNumber | ᥎ | True | True |
| 6479 | ᥏ | DecimalDigitNumber | ᥏ | True | True |
| 6608 | ᧐ | DecimalDigitNumber | ᧐ | True | True |
| 6609 | ᧑ | DecimalDigitNumber | ᧑ | True | True |
| 6610 | ᧒ | DecimalDigitNumber | ᧒ | True | True |
| 6611 | ᧓ | DecimalDigitNumber | ᧓ | True | True |
| 6612 | ᧔ | DecimalDigitNumber | ᧔ | True | True |
| 6613 | ᧕ | DecimalDigitNumber | ᧕ | True | True |
| 6614 | ᧖ | DecimalDigitNumber | ᧖ | True | True |
| 6615 | ᧗ | DecimalDigitNumber | ᧗ | True | True |
| 6616 | ᧘ | DecimalDigitNumber | ᧘ | True | True |
| 6617 | ᧙ | DecimalDigitNumber | ᧙ | True | True |
| 6618 | ᧚ | OtherNumber | ᧚ | True | False |
| 6784 | ᪀ | DecimalDigitNumber | ᪀ | True | True |
| 6785 | ᪁ | DecimalDigitNumber | ᪁ | True | True |
| 6786 | ᪂ | DecimalDigitNumber | ᪂ | True | True |
| 6787 | ᪃ | DecimalDigitNumber | ᪃ | True | True |
| 6788 | ᪄ | DecimalDigitNumber | ᪄ | True | True |
| 6789 | ᪅ | DecimalDigitNumber | ᪅ | True | True |
| 6790 | ᪆ | DecimalDigitNumber | ᪆ | True | True |
| 6791 | ᪇ | DecimalDigitNumber | ᪇ | True | True |
| 6792 | ᪈ | DecimalDigitNumber | ᪈ | True | True |
| 6793 | ᪉ | DecimalDigitNumber | ᪉ | True | True |
| 6800 | ᪐ | DecimalDigitNumber | ᪐ | True | True |
| 6801 | ᪑ | DecimalDigitNumber | ᪑ | True | True |
| 6802 | ᪒ | DecimalDigitNumber | ᪒ | True | True |
| 6803 | ᪓ | DecimalDigitNumber | ᪓ | True | True |
| 6804 | ᪔ | DecimalDigitNumber | ᪔ | True | True |
| 6805 | ᪕ | DecimalDigitNumber | ᪕ | True | True |
| 6806 | ᪖ | DecimalDigitNumber | ᪖ | True | True |
| 6807 | ᪗ | DecimalDigitNumber | ᪗ | True | True |
| 6808 | ᪘ | DecimalDigitNumber | ᪘ | True | True |
| 6809 | ᪙ | DecimalDigitNumber | ᪙ | True | True |
| 6992 | ᭐ | DecimalDigitNumber | ᭐ | True | True |
| 6993 | ᭑ | DecimalDigitNumber | ᭑ | True | True |
| 6994 | ᭒ | DecimalDigitNumber | ᭒ | True | True |
| 6995 | ᭓ | DecimalDigitNumber | ᭓ | True | True |
| 6996 | ᭔ | DecimalDigitNumber | ᭔ | True | True |
| 6997 | ᭕ | DecimalDigitNumber | ᭕ | True | True |
| 6998 | ᭖ | DecimalDigitNumber | ᭖ | True | True |
| 6999 | ᭗ | DecimalDigitNumber | ᭗ | True | True |
| 7000 | ᭘ | DecimalDigitNumber | ᭘ | True | True |
| 7001 | ᭙ | DecimalDigitNumber | ᭙ | True | True |
| 7088 | ᮰ | DecimalDigitNumber | ᮰ | True | True |
| 7089 | ᮱ | DecimalDigitNumber | ᮱ | True | True |
| 7090 | ᮲ | DecimalDigitNumber | ᮲ | True | True |
| 7091 | ᮳ | DecimalDigitNumber | ᮳ | True | True |
| 7092 | ᮴ | DecimalDigitNumber | ᮴ | True | True |
| 7093 | ᮵ | DecimalDigitNumber | ᮵ | True | True |
| 7094 | ᮶ | DecimalDigitNumber | ᮶ | True | True |
| 7095 | ᮷ | DecimalDigitNumber | ᮷ | True | True |
| 7096 | ᮸ | DecimalDigitNumber | ᮸ | True | True |
| 7097 | ᮹ | DecimalDigitNumber | ᮹ | True | True |
| 7232 | ᱀ | DecimalDigitNumber | ᱀ | True | True |
| 7233 | ᱁ | DecimalDigitNumber | ᱁ | True | True |
| 7234 | ᱂ | DecimalDigitNumber | ᱂ | True | True |
| 7235 | ᱃ | DecimalDigitNumber | ᱃ | True | True |
| 7236 | ᱄ | DecimalDigitNumber | ᱄ | True | True |
| 7237 | ᱅ | DecimalDigitNumber | ᱅ | True | True |
| 7238 | ᱆ | DecimalDigitNumber | ᱆ | True | True |
| 7239 | ᱇ | DecimalDigitNumber | ᱇ | True | True |
| 8304 | ⁰ | OtherNumber | ⁰ | True | False |
| 8308 | ⁴ | OtherNumber | ⁴ | True | False |
| 8309 | ⁵ | OtherNumber | ⁵ | True | False |
| 8310 | ⁶ | OtherNumber | ⁶ | True | False |
| 8311 | ⁷ | OtherNumber | ⁷ | True | False |
| 8312 | ⁸ | OtherNumber | ⁸ | True | False |
| 8313 | ⁹ | OtherNumber | ⁹ | True | False |
| 8320 | ₀ | OtherNumber | ₀ | True | False |
| 8321 | ₁ | OtherNumber | ₁ | True | False |
| 8322 | ₂ | OtherNumber | ₂ | True | False |
| 8323 | ₃ | OtherNumber | ₃ | True | False |
| 8324 | ₄ | OtherNumber | ₄ | True | False |
| 8325 | ₅ | OtherNumber | ₅ | True | False |
| 8326 | ₆ | OtherNumber | ₆ | True | False |
| 8327 | ₇ | OtherNumber | ₇ | True | False |
| 8328 | ₈ | OtherNumber | ₈ | True | False |
| 8329 | ₉ | OtherNumber | ₉ | True | False |
| 8528 | ⅐ | OtherNumber | ⅐ | True | False |
| 8529 | ⅑ | OtherNumber | ⅑ | True | False |
| 8530 | ⅒ | OtherNumber | ⅒ | True | False |
| 8531 | ⅓ | OtherNumber | ⅓ | True | False |
| 8532 | ⅔ | OtherNumber | ⅔ | True | False |
| 8533 | ⅕ | OtherNumber | ⅕ | True | False |
| 8534 | ⅖ | OtherNumber | ⅖ | True | False |
| 8535 | ⅗ | OtherNumber | ⅗ | True | False |
| 8536 | ⅘ | OtherNumber | ⅘ | True | False |
| 8537 | ⅙ | OtherNumber | ⅙ | True | False |
| 8538 | ⅚ | OtherNumber | ⅚ | True | False |
| 8539 | ⅛ | OtherNumber | ⅛ | True | False |
| 8540 | ⅜ | OtherNumber | ⅜ | True | False |
| 8541 | ⅝ | OtherNumber | ⅝ | True | False |
| 8542 | ⅞ | OtherNumber | ⅞ | True | False |
| 8543 | ⅟ | OtherNumber | ⅟ | True | False |
| 8544 | Ⅰ | LetterNumber | Ⅰ | True | False |
| 8545 | Ⅱ | LetterNumber | Ⅱ | True | False |
| 8546 | Ⅲ | LetterNumber | Ⅲ | True | False |
| 8547 | Ⅳ | LetterNumber | Ⅳ | True | False |
| 8548 | Ⅴ | LetterNumber | Ⅴ | True | False |
| 8549 | Ⅵ | LetterNumber | Ⅵ | True | False |
| 8550 | Ⅶ | LetterNumber | Ⅶ | True | False |
| 8551 | Ⅷ | LetterNumber | Ⅷ | True | False |
| 8552 | Ⅸ | LetterNumber | Ⅸ | True | False |
| 8553 | Ⅹ | LetterNumber | Ⅹ | True | False |
| 8554 | Ⅺ | LetterNumber | Ⅺ | True | False |
| 8555 | Ⅻ | LetterNumber | Ⅻ | True | False |
| 8556 | Ⅼ | LetterNumber | Ⅼ | True | False |
| 8557 | Ⅽ | LetterNumber | Ⅽ | True | False |
| 8558 | Ⅾ | LetterNumber | Ⅾ | True | False |
| 8559 | Ⅿ | LetterNumber | Ⅿ | True | False |
| 8560 | ⅰ | LetterNumber | ⅰ | True | False |
| 8561 | ⅱ | LetterNumber | ⅱ | True | False |
| 8562 | ⅲ | LetterNumber | ⅲ | True | False |
| 8563 | ⅳ | LetterNumber | ⅳ | True | False |
| 8564 | ⅴ | LetterNumber | ⅴ | True | False |
| 8565 | ⅵ | LetterNumber | ⅵ | True | False |
| 8566 | ⅶ | LetterNumber | ⅶ | True | False |
| 8567 | ⅷ | LetterNumber | ⅷ | True | False |
| 8568 | ⅸ | LetterNumber | ⅸ | True | False |
| 8569 | ⅹ | LetterNumber | ⅹ | True | False |
| 8570 | ⅺ | LetterNumber | ⅺ | True | False |
| 8571 | ⅻ | LetterNumber | ⅻ | True | False |
| 8572 | ⅼ | LetterNumber | ⅼ | True | False |
| 8573 | ⅽ | LetterNumber | ⅽ | True | False |
| 8574 | ⅾ | LetterNumber | ⅾ | True | False |
| 8575 | ⅿ | LetterNumber | ⅿ | True | False |
| 8576 | ↀ | LetterNumber | ↀ | True | False |
| 8577 | ↁ | LetterNumber | ↁ | True | False |
| 8578 | ↂ | LetterNumber | ↂ | True | False |
| 8581 | ↅ | LetterNumber | ↅ | True | False |
+-------+---+--------------------+----------+------+-------+


RE: Difference between Char.IsDigit() and Char.IsNumber() in C# - designxcljwtmhbu - 07-24-2023

I found the answer:

> Char.IsNumber() determines if a Char
> is of any numeric Unicode category.
> This contrasts with IsDigit, which
> determines if a Char is a radix-10
> digit.
>
> Valid numbers are members of the
> following categories in
> [UnicodeCategory](

[To see links please register here]

"Decimal digit character, that is, a character in the range 0 through 9. Signified by the Unicode designation "Nd" (number, decimal digit). The value is 8."):
>


> 1. **`DecimalDigitNumber`**
> Decimal digit character, that is, a character in the range 0 through 9. Signified by the Unicode designation "Nd" (number, decimal digit). The value is 8.
> 2. **`LetterNumber`**
Number represented by a letter, instead of a decimal digit, for example, the Roman numeral for five, which is "V". The indicator is signified by the Unicode designation "Nl" (number, letter). The value is 9.
> 3. **`OtherNumber`**
Number that is neither a decimal digit nor a letter number, for example, the fraction ½. The indicator is signified by the Unicode designation "No" (number, other). The value is 10.

## Conclusion ##


- **`Char.IsDigit`**:
Valid digits are members of the `DecimalDigitNumber` category only.
- **`Char.IsNumber`**:
Valid numbers are members of the `DecimalDigitNumber`, `LetterNumber`, or `OtherNumber` category.