В C# мне кажется, что нет функции «Math.Cos», которая возвращает float. Двойное значение - это единственное значение, которое вы можете вернуть, тем самым вынуждая его использовать его для поплавка. Как так:
float val = (float)Math.Cos(someVal);
Может ли «System.Math.Cos» возвращать (плавать)?
мне нужно использовать поплавки, потому что я делаю вещи в Direct3D, который строго использует поплавки. Поплавки гораздо чаще встречаются в мире графики (как сейчас), потому что они 32 бит.
Есть ли какая-либо функциональность внутри C#, которую я могу использовать, просто будет обрабатывать поплавки, например C++?
Я не хочу обертывать какие-либо материалы на C++, потому что это нужно запускать на XNA & Linux для OpenGL.
ПРИМЕЧАНИЕ: Было бы неплохо иметь код, в котором не было бы двойного поплавка.
Вы можете перегрузить math.cos() с вашей собственной версией, которая просто возвращает литую версию. – Puppy 2010-12-03 21:36:59
Хотя Direct3D требует поплавков, все равно лучше работать с двойным, пока вам не придется конвертировать, поскольку он позволяет избежать проблем с округлением ошибок (но не всех). – ChrisF 2010-12-03 21:45:14
@ChrisF - это действительно не так с играми. Округление редко бывает проблемой или может быть устранено путем зажима, а первичная экономия на избежании двойного значения является значительной. – codekaizen 2010-12-03 21:47:44