Проблема преобразования C# float в int (в Unity)C#

Место общения программистов C#
Ответить
Anonymous
 Проблема преобразования C# float в int (в Unity)

Сообщение Anonymous »

у меня возникла небольшая проблема с преобразованием числа с плавающей запятой в int в C# (Unity)
примерно, когда я пытаюсь
x * 1.05, получается x * 1х*1,1, выходит х*1,05

Код: Выделить всё

using System;

public class Example
{
public static void Main()
{
int gainAmount = 20;
float _gainAmountModifier = 1.05f
gainAmount = (int)(gainAmount * _gainAmountModifier);
Debug.Log(_gainAmountModifier);
Debug.Log(gainAmount);
}
}
// The example displays output like the following:
//       1.05
//       20
когда я тестирую это в песочнице C#

Код: Выделить всё

using System;

public class Example
{
public static void Main()
{
int var_int = 100;
float var_f = var_int;
var_f = var_f * 1.05f;
var_int = (int)var_f;

Console.WriteLine(var_f);
Console.Write(var_int);
}
}
// The example displays output like the following:
//       105
//       104
похоже, что округление на 1 меньше?

Подробнее здесь: https://stackoverflow.com/questions/784 ... m-in-unity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»