Преобразовать INumber в С# в число с плавающей запятой? .net 7 или новееC#

Место общения программистов C#
Ответить
Anonymous
 Преобразовать INumber в С# в число с плавающей запятой? .net 7 или новее

Сообщение Anonymous »

Есть ли способ преобразовать целое число в подходящее число с плавающей запятой и обратно? Некоторым функциям, которые получают и возвращают целые числа, во время вычислений требуется число с плавающей запятой.
Посмотрите на это:

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

void Main()
{
Interpolation.LinearBetween((0, 5), (10, 3), 7).DumpIt();
Interpolation.LinearBetween((0.0f, 5), (10, 3), 7).RoundToInt().DumpIt();

}

public static class Interpolation
{
public static T LinearBetween((T x1, T y1) a, (T x2, T y2) b, T x) where T : INumber
{
//f(x) = m*x + n
//one oft operands needs to be floating point type
var m = (b.y2 - a.y1) / (b.x2 - a.x1);
var n = b.y2 - m * b.x2;

return (x * m + n);
}

public static int RoundToInt(this float value)
{
return (int)Math.Round(value);
}

public static void DumpIt(this object toDump)
{
Console.WriteLine(toDump);
}
}
Выполнение LinearBetween целиком неверно.
Изменить: перефразировать вопрос.

Подробнее здесь: https://stackoverflow.com/questions/791 ... 7-or-newer
Ответить

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

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

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

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

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