Например, этот блог говорит, что 0,005 не точно 0,005, но округление этого числа дает правильный результат.
Я пробовал все виды округления в C++, и он терпит неудачу при округлении чисел до определенных десятичных знаков. Например, Round (x, y) округляет x до кратного y. So Round (37.785,0.01) должен дать вам 37.79, а не 37.78.
Я вновь открываю этот вопрос, чтобы обратиться за помощью к сообществу. Проблема заключается в неточности чисел с плавающей запятой (37,785 представлена как 37,78499999999).
Вопрос в том, как Excel справляется с этой проблемой?
Решение в этом раунде() для float в C++ неверно для указанной проблемы.