Почему этот код возвращает разные значения? (C # и VB.NET)

Код VB.NET:

Module Module1

Sub Main()
    Dim x, y As Single
    x = 0 + (512 / 2 - 407) / 256 * 192 * -1
    y = 0 + (512 / 2 - 474) / 256 * 192
    Console.WriteLine(x.ToString + ": " + y.ToString)
    Console.ReadLine()
End Sub

End Module

Возвращает: 113,25: -163,5

Код C #:

class Program
{
    static void Main(string[] args)
    {
        float x, y;
        x = 0 + (512 / 2 - 407) / 256 * 192 * -1;
        y = 0 + (512 / 2 - 474) / 256 * 192;
        Console.WriteLine(x + ": " + y);
        Console.ReadLine();
    }
}

возвращает 0: 0

Я не понимаю, был бы признателен за объяснение.

10
задан tryingit 2 December 2010 в 03:13
поделиться