Метод округления валют MS Excel - PullRequest
1 голос
/ 20 июня 2011

Хотите знать, какой метод округления применяется при использовании функции Round () в Excel?Также есть разница, когда вы выбираете форматирование столбца как валюты с двумя десятичными разрядами.Мне нужно эмулировать результаты Excel в программе на C #, которую я пишу.

1 Ответ

3 голосов
/ 20 июня 2011

Внимание: в Excel и Excel-VBA используются два разных алгоритма.

В Excel:

=ROUND(0.5,0) возвращает 1.

=ROUND(1.5,0) возвращает 2.

В Excel-VBA:

Print Round(0.5,0)
 0 
Print Round(1.5,0)
 2 

VBA использует округление банкира: округляет 0,5 до ближайшего даже целого числа.Обратите внимание, что та же логика переносится в десятичные разряды младшего разряда, если вы Round в более десятичные разряды.Например, Round(0.05,1) возвращает ноль в Excel-VBA (в отличие от 0,1 в Excel).

Это одна из особенностей VBA, которая мне больше всего не нравится.Это несовместимо с Excel делает это еще хуже.

Числовой формат не имеет значения для этой проблемы.

...