Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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
Java与C中的C#-intValue()等价#_C#_Java_Asp.net - Fatal编程技术网

Java与C中的C#-intValue()等价#

Java与C中的C#-intValue()等价#,c#,java,asp.net,C#,Java,Asp.net,我试图将Java中的一段代码重新编写到C#,但遇到了一个问题,基本上我创建了一个返回字符串的方法,但是从C#和Java返回的字符串不一样,因此代码是错误的。一个问题是下面的代码 我有以下Java代码: Double localDouble1 = new Double(d1 / 100.0D); int l = localDouble1.intValue(); 我想用C重新写,我已经试过了 Double localDouble1 = d1 / 100.0D; int l = Convert.To

我试图将Java中的一段代码重新编写到C#,但遇到了一个问题,基本上我创建了一个返回字符串的方法,但是从C#和Java返回的字符串不一样,因此代码是错误的。一个问题是下面的代码

我有以下Java代码:

Double localDouble1 = new Double(d1 / 100.0D);
int l = localDouble1.intValue();
我想用C重新写,我已经试过了

Double localDouble1 = d1 / 100.0D;
int l = Convert.ToInt32(localDouble1);
它可以编译并工作,但结果不同,在我的特定场景中,javaintl变量包含0,而c#one返回1

有没有更好的方法来实现我需要做的事情,就像在Java中一样。

舍入到最接近的整数。不会-它会截断,就像cast一样(如文档所示)

换个演员吧:

int l = (int) localDouble1;
(同时尽量避免使用类似于
1
:)的名称,如
l

试试这个

Double localDouble1 = d1 / 100.0D;

int l=Convert.ToInt32(Math.Floor(localDouble1));
因为Convert.ToInt32 如果值介于两个整数之间,则返回偶数;也就是说,5.5转换为6,6.5转换为7。


@Jon Skeet-关于名字你是对的,我快发疯了,因为我在另一行看到了“inti2=((i1-(l*100))/10;”,我想这怎么不是机器,只是整数。但我没有写这段代码,我只是在重新编写它。不管怎样,谢谢你的回答,我现在就去试试。这不是说它很流行吗@霍根:这是不精确的——我链接到的后面的文档更好。基本上是四舍五入,但四舍五入是向零,而不是向最接近的整数舍入。@Jon Skeet-我忽略了d1,因为这不是问题所在,转换为。ToInt32是问题所在,顺便说一句,你的建议奏效了:)虽然我很高兴它解决了问题,让代码运行以查看差异总是很有用的——这取决于
d1
@Jon Skeet的值——我知道,我会确保下次放入所有相关代码
  cast int l = (int) localDouble1;