Есть такая часть в коде.
double n = 1.;
n *= 1. / 16;
что . может означать?
Деление
1/16
рассматривается компилятором как целочисленное деление, дающее в результате целое число, и результат в результате :) округляется до целого числа - 0.
Деление
1./16 // то же самое, что и 1.0/16
рассматривается как деление вещественного ("обычного" дробного числа из школьной математики, тип double) числа, так что результат получается
0.0625
(Замечу в скобках, что в C/C++ пишется десятичная точка, а не запятая.)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей