Я пытаюсь создать гистограмму с использованием GSL. У меня возникает проблема, когда я пытаюсь добавить к гистограмме значение деления 1470/100. Это результат 14.69999999, и при добавлении к гистограмме он округляется до нижнего бункера. Мой вопрос: как я могу сделать результат 1470/100 в 14.7, а не 14.69999? СпасибоВопрос об округлении C++
Edit:
int minRange = 14;
double val;
val = minRange + j*0.05;
gsl_histogram_increment(hist, val);
Когда вал добавляется в гистограмме это считается 14,65 вместо 14,7. (j в этом случае равно 14).
Я решил проблему, добавив 1e-6 в val. Спасибо за помощь.
http://floating-point-gui.de/ – JBL
Возможно, я ошибаюсь здесь, но если вы хотите, чтобы все точки гистограммы округлились, вы не можете сделать что-то вроде раунда (число * 100) /10.0? Можем ли мы извлечь код? Не знаете, какие типы данных вы используете. –
Только для информации: представление '14.7' в плавающей запятой IEEE 754: [32-битный float] (http://www.binaryconvert.com/result_float.html?decimal=049052046055) и [64-битный двойной] (http : //www.binaryconvert.com/result_double.html? decimal = 049052046055) –