Выражение 1 / 1000
вычисляется (во время компиляции в этом случае, хотя на самом деле это не имеет значения) с использованием целочисленной арифметики в C #, поэтому оценивается как 0. Используйте 1.0 / 1000
1 вместо того, чтобы принудительно double
арифметика для использования.
Я считаю, что VB всегда использует арифметику с плавающей запятой для /
, и вы должны использовать \
если вы хотите выполнить деление с использованием целочисленной арифметики, именно поэтому вы видите там другое поведение.
1 Или, согласно комментариям, используйте 1d
или (double) 1
или что-либо еще, что заставит один из операндов считаться типом double
.