Пытаясь создать набор Мандельброта, я пытался использовать 8 и 15 цифр переменных с плавающей запятой в моей программе и столкнулся с проблемой: double
приближается к 0
. Я попробовал модульное тестирование и написал этот код, чтобы изолировать проблему. Используя переменную viewer, значения h
и w
оба были на 0.0
, в отличие от 0.00185185185185
и 0.0015625
, но когда я просто пишу double h = 0.0015625
, он работает.Точка с плавающей точкой C#
Большое спасибо за помощь.
int apparentwidth = 3;
int apparentheight = 2;
int height = 1080;
int width = 1920;
double w = (apparentwidth/width);
double h = (apparentheight/height);
Console.WriteLine(w);
Console.WriteLine(h);
математика выполняется на целых, а затем вы преобразования с плавающей точкой. Вы, вероятно, хотите преобразовать, прежде чем делать математику. – kenny