2013-05-10 50 views
7

đang VB.Net mà tôi cần để dịch C#:C# và VB.Net cho kết quả khác nhau cho các phương trình tương tự

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

Cùng phương trình trong C#

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

Tại sao lại có một khác nhau ? Mod là khác nhau giữa hai?

EDIT: Tôi đang dịch mã từ VB sang C#, vì vậy tôi cần có kết quả tương tự như mã VB trong mã C# của tôi.

+2

* Các ngôn ngữ khác * * khác nhau *. :) –

Trả lời

17

Phân chia khác nhau giữa 2.

Trong VB.NET bạn nhận được kết quả loại dấu phẩy động.

Trong C# đây là phân chia số nguyên (vì cả hai toán tử đều là số nguyên).

Nếu bạn sử dụng các nhà điều hành phân chia số nguyên trong VB.NET, bạn sẽ nhận được kết quả tương tự:

Dim s = 27 \ 15 Mod 1 

Để có được kết quả VB.NET trong C#, bạn cần phải đảm bảo một trong những nhà khai thác phân chia là loại điểm nổi:

var s = 27/15.0 % 1; 
var s = 27.0/15 % 1; 
var s = 27.0/15.0 % 1; 
Các vấn đề liên quan