为什么Java和C#在简单加法上有所不同

时间:2018-10-31 12:39:50

标签: java c#

我有两个摘要,一个在 Java 中,一个在 c#中。

float a = 1234e-3f;
float b = 1.23f;
float ca = 1.234e3f;
float d = 43.21f;
long e = 1234L;
int f = 0xa;
int g = 014;
char h = 'Z';
char ia = ' ';


byte j = 123;
short k = 4321;

System.out.println(a+b+ca+d+e+f+g+h+ia+j+k);

Java 代码段返回 7101.674

c#

float a = 1234e-3f;
float b = 1.23f;
float ca = 1.234e3f;
float d = 43.21f;
long e = 1234L;
int f = 0xa;
int g = 014;
char h = 'Z';
char ia = ' ';


byte j = 123;
short k = 4321;

Console.WriteLine(a+b+ca+d+e+f+g+h+ia+j+k);

产生 7103.674 的结果。

为什么我 2 离开,什么是正确的?

1 个答案:

答案 0 :(得分:19)

区别在于

int g = 014;

对于Java(014 == 12)为八进制,对于C#(014 == 14)为十进制