Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the deal with char.GetNumericValue?

I was working on Project Euler 40, and was a bit bothered that there was no int.Parse(char). Not a big deal, but I did some asking around and someone suggested char.GetNumericValue. GetNumericValue seems like a very odd method to me:

  • Takes in a char as a parameter and returns... a double?
  • Returns -1.0 if the char is not '0' through '9'

So what's the reasoning behind this method, and what purpose does returning a double serve? I even fired up Reflector and looked at InternalGetNumericValue, but it's just like watching Lost: every answer just leads to another question.

like image 483
Matthew Groves Avatar asked May 19 '10 15:05

Matthew Groves


People also ask

What does character getNumericValue do?

getNumericValue(char ch) returns the int value that the specified Unicode character represents. For example, the character '\u216C' (the roman numeral fifty) will return an int with a value of 50.

How do I find the value of a char in a number?

Java Character getNumericValue() Method The getNumericValue() method of character class returns the int value of the specified character. If the character does not have any int value, -1 is returned. If the character has a numeric value that cannot be represented as a non-negative integer, -2 is returned.

How do you find the numeric value of a string?

GetNumericValue(String, Int32) Converts the numeric Unicode character at the specified position in a specified string to a double-precision floating point number.


1 Answers

Remember that it's taking a Unicode character and returning a value. '0' through '9' are the standard decimal digits, however there are other Unicode characters that represent numbers, some of which are floating point.

Like this character: ¼

Console.WriteLine( char.GetNumericValue( '¼' ) ); 

Outputs 0.25 in the console window.

like image 118
Adam Sills Avatar answered Sep 28 '22 03:09

Adam Sills