C#和VB.Net给出了相同方程的不同结果

时间:2013-05-10 17:38:37

标签: c# vb.net

我需要转换为C#的VB.Net代码:

Dim s = 27 / 15 Mod 1 //result is 0.8

C#中的相同等式

var s = 27 / 15 % 1 //result is 0

为什么会有不同?这两者之间的Mod是不同的吗?

编辑:我正在将代码从VB转换为C#,因此我需要获得与C#代码中的VB代码相同的结果。

1 个答案:

答案 0 :(得分:17)

2的分歧是不同的。

在VB.NET中,您会得到一个浮点类型的结果。

在C#中,这是整数除法(因为两个运算符都是整数)。

如果在VB.NET中使用整数除法运算符,则会得到相同的结果:

Dim s = 27 \ 15 Mod 1

要在C#中获取VB.NET结果,您需要确保其中一个除法运算符是浮点类型:

var s = 27 / 15.0 % 1;
var s = 27.0 / 15 % 1;
var s = 27.0 / 15.0 % 1;