Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C char.GetNumericValue v/s Java Character.GetNumericValue_Java_C# - Fatal编程技术网

C char.GetNumericValue v/s Java Character.GetNumericValue

C char.GetNumericValue v/s Java Character.GetNumericValue,java,c#,Java,C#,有人知道为什么java Character.getNumericValue'a'返回10,而C char.getNumericValue'a'返回-1吗 不同语言中的不同函数做不同的事情。这里的关键区别在于C函数专门用于数字字符,而Java函数似乎更通用 返回指定Unicode字符表示的int值 将指定的数字Unicode字符转换为双精度 浮点数。 c的数值,如果该字符表示一个数字;否则,-1.0 也许您正在寻找: 将指定的Unicode字符的值转换为 等效的32位有符号整数 如果您想实现从J

有人知道为什么java Character.getNumericValue'a'返回10,而C char.getNumericValue'a'返回-1吗

不同语言中的不同函数做不同的事情。这里的关键区别在于C函数专门用于数字字符,而Java函数似乎更通用

返回指定Unicode字符表示的int值

将指定的数字Unicode字符转换为双精度 浮点数。 c的数值,如果该字符表示一个数字;否则,-1.0

也许您正在寻找:

将指定的Unicode字符的值转换为 等效的32位有符号整数


如果您想实现从Java到C的转换,我编写了这个helper函数来完成与Java Character.getNumeric函数相同的任务。它不干净,可能遗漏了角落的案例,但它涵盖了基本情况。在.NET世界中,我没有找到一种干净的编码/转换方法,但很可能存在这样一种方法:

 private int javaCharGetNumericValue(char c)
    {
        switch (c)
        {
            case '1': return 1;
            case '2': return 2;
            case '3': return 3;
            case '4': return 4;
            case '5': return 5;
            case '6': return 6;
            case '7': return 7;
            case '8': return 8;
            case '9': return 9;
            case '0': return 0;
            case 'A': case 'a': return 10;
            case 'B': case 'b': return 11;
            case 'C': case 'c': return 12;
            case 'D': case 'd': return 13;
            case 'E': case 'e': return 14;
            case 'F': case 'f': return 15;
            case 'G': case 'g': return 16;
            case 'H': case 'h': return 17;
            case 'I': case 'i': return 18;
            case 'J': case 'j': return 19;
            case 'K': case 'k': return 20;
            case 'L': case 'l': return 21;
            case 'M': case 'm': return 22;
            case 'N': case 'n': return 23;
            case 'O': case 'o': return 24;
            case 'P': case 'p': return 25;
            case 'Q': case 'q': return 26;
            case 'R': case 'r': return 27;
            case 'S': case 's': return 28;
            case 'T': case 't': return 29;
            case 'U': case 'u': return 30;
            case 'V': case 'v': return 31;
            case 'W': case 'w': return 32;
            case 'X': case 'x': return 33;
            case 'Y': case 'y': return 34;
            case 'Z': case 'z': return 35;
            default:
                return -1;
        }
    }

Java是问题的一部分?您的问题被否决,因为它只是要求提供文档。@user960567您可能没有要求提供文档,但可以在那里找到答案。它们是不同语言的方法;没有特别的理由让他们做完全相同的事情。@user960567:Yes;事实上,Math.round也是不一致的。不同的语言设计者会做出不同的决定。阅读文档。