Самый короткий / простой / самый быстрый способ будет:
:qa
Чтобы сохранить работу во всех вкладках и выйти:
:wqa
Когда вы делите два int на значение с плавающей запятой, дробная часть теряется. Если вы переведете один из элементов в число с плавающей точкой, вы не получите эту ошибку.
Так, например, превратите 10 в 10.0
double returnValue = (myObject.Value / 10.0);
Вы выполняете целочисленное деление, если myObject.Value
является целым числом, поскольку обе стороны /
имеют целочисленный тип.
Для деления с плавающей запятой одно из чисел в выражении должно иметь тип с плавающей запятой. Это было бы верно, если бы myObject.Value был двойным или любым из следующего:
double returnValue = myObject.Value / 10.0;
double returnValue = myObject.Value / 10d; //"d" is the double suffix
double returnValue = (double)myObject.Value / 10;
double returnValue = myObject.Value / (double)10;
Предполагая, что myObject.Value
является int
, уравнение myObject.Value / 10
будет целочисленным делением, которое затем будет преобразовано в значение типа double.
Это означает, что значение myObject.Value, равное 12, приведет к тому, что returnValue станет 1, не 1.2.
Сначала вам необходимо преобразовать значения:
double returnValue = (double)(myObject.Value) / 10.0;
Это приведет к правильному значению 1,2, по крайней мере, такому же правильному, как double позволяют с учетом их ограничений, но это обсуждается в другом месте на SO, почти бесконечно: -).
Я думаю, поскольку myObject является int, вам следует
double returnValue=(myObject.Value/10.0);
Целое число, деленное на целое число, вернет вам целое число. Преобразуйте значение Value в двойное или разделите на 10.0.