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

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

Сообщение Anonymous »

Как можно преобразовать a или b в число с плавающей запятой перед фактическим элементом div?

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

T Div(T a, T b) where T : INumber
{
return a / b;
}
Должно работать для любого «простого» числового типа. Для целочисленных типов расчет наклона требует преобразования в тип с плавающей запятой. Итак, как можно преобразовать целое число как T в число с плавающей запятой и обратно. Входные значения и возвращаемые значения являются целыми числами, но во время вычислений необходимо использовать число с плавающей запятой.

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

public static int LinearBetween((int x1, int y1) a, (int x2, int y2) b, int x)
{
//f(x) = m*x + n
var m = (b.y2 - a.y1) / (float)(b.x2 - a.x1);
var n = b.y2 - m * b.x2;

return (int)Math.Round(x * m + n);
}
Отредактировано: этот код не работает. (float)(b.x2 - a.x1) выдает «Невозможно преобразовать T в число с плавающей запятой»

Подробнее здесь: https://stackoverflow.com/questions/791 ... 7-or-never

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