Увеличение десятичных чисел в C # - PullRequest
2 голосов
/ 14 декабря 2011

Я пробираюсь по учебникам для XNA (C #) для начинающих и отклонился в собственном направлении, как только я изучил рендеринг и позиционирование, имея собственный опыт разработки игр.

Я пытаюсь создать свойство VelocityY в моем классе Ship. Я хочу иметь возможность увеличивать это значение на значения, которые являются десятичными, то есть:

VelocityY += 0.45;

Я подумал, что float был тип, необходимый здесь, но когда я пытаюсь скомпилировать, я получаю эту ошибку:

Литерал типа double не может быть неявно преобразован в тип 'float'; используйте суффикс 'F' для создания литерала этого типа.

Я не совсем уверен, что означает первая часть, поскольку я не использовал double, насколько я знаю. VelocityY объявлено так:

public float VelocityY = 0;

Я попытался использовать double и даже int вместо этого, но я все еще не могу увеличить на целые числа. Целые числа работают нормально.

Ответы [ 3 ]

7 голосов
/ 14 декабря 2011

Тип буквального значения 0,45 - double. Если вы хотите сделать его плавающим, используйте суффикс f или F, как говорит ошибка компилятора:

VelocityY += 0.45F;

По сути, если вы не укажете суффикс для литерала, включающего десятичную точку, это неявно double. Вы можете использовать суффикс, чтобы сделать его явным:

decimal a = 0.45M;
float b = 0.45F;
double c = 0.45D;
1 голос
/ 14 декабря 2011

вы должны изменить

public float VelocityY = 0;
to
public double VelocityY = 0;

или

VelocityY += 0.45;
to
VelocityY += 0.45F;
0 голосов
/ 14 декабря 2011

По умолчанию все значения, которые вы задаете как 0,45 или 0,68, являются двойными в среде C #, но здесь вы должны сказать компилятору, что число, которое вы дали, было плавающим, добавив к нему суффикс F.

переменная + = 0,45F;

...