Matlab против C ++ Double Precision

Я портирую некоторый код из Matlab на C ++.

В Matlab

format long
D = 0.689655172413793 (this is 1.0 / 1.45)
E = 2600 / D
// I get E = 3.770000000000e+03

В C ++

double D = 0.68965517241379315; //(this is 1.0 / 1.45)
double E = 2600 / D;
//I get E = 3769.9999999999995

Это проблема для меня, потому что в обоих случаях мне нужно сделать округление до 0 (исправление Matlab), и в первом случае (Matlab) значение становится 3770, тогда как во втором случае (C ++) оно становится 3769.

Я понимаю, что это из-за двух дополнительных наименее значащих цифр "15" в случае C ++. Учитывая, что Matlab, похоже, хранит до 15 значащих цифр точности только с двойной точностью (как показано выше - 0,689655172413793), как я могу эффективно сказать C ++ игнорировать «15» сзади?

Все расчеты выполнены с двойной точностью.

Ответы на вопрос(2)

Ваш ответ на вопрос