C# 和 VB.Net 对同一个方程给出不同的结果

标签 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 代码相同的结果。

最佳答案

两者的划分不同

在 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;

关于C# 和 VB.Net 对同一个方程给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487929/

相关文章:

vb.net - 全局函数

vb.net - SQL Data Reader - 如何优雅地处理空列值

c# - 可为空的 ToString()

c# - Windows Phone c# 上的触摸启动事件句柄

c# - VB 到 C# 的翻译

c# - 在嵌套 If 中应用两个条件或将单个条件与 And 结合使用哪个更好?

c# - 如何在 .net core 中使用 JwtSecurityTokenHandler 和 Compression DEFLATE 生成/验证 JWT token

c# - 以编程方式更改 ListBox 的 SelectedItem 时未触发 SelectionChanged 命令

c# - CaSTLe 动态代理 + Ninject as DI 的问题

vb.net - 在面向对象编程中使用 .txt 文件的正确方法