Какой смысл добавлять 0f к float? - PullRequest
0 голосов
/ 31 мая 2018

Я видел несколько примеров кода, в которых они добавили 0f к другому значению с плавающей точкой, что я не очень понимаю.

Самый последний пример взят из клона «Прогресс войны», сделанного в Monogame и C #если я правильно помню.

                var hit = (int)(basedamage
                                * (Math.Ceiling((double)Life / 10f) / 10f)
                                * ((100f + 0f) / (100f + 0f)));

Мне показалось, что было бы бессмысленно добавлять 0 к другому числу, потому что хорошо ... это 0. Но это было четко определено как число с плавающей точкой, поэтому я предполагаю, что есть причина для этого.

Я задал вопрос о разногласиях с разработчиками игр, и один из них сказал, что это «возможно, для повышения точности», но сам он не был так уверен.Я не могу найти какую-либо информацию в Google (и, честно говоря, я не знаю, как правильно сформулировать то, что я пытаюсь выяснить правильно)

Итак, это просто, чтобы добавить больше точности'к плаванию или есть другая причина, почему некоторые люди делают это?

1 Ответ

0 голосов
/ 01 июня 2018

Нет причин делать это.x * ((100f + 0f) / (100f + 0f))) == x для всех заказанных x.Этот код, возможно, возник из-за автогенерации, из-за чрезмерно узких изменений кода с течением времени или из-за ошибочных представлений о вычислениях с плавающей запятой.Но в любом случае это не обязательно.

...