Мод с плавающими числами дает неправильный результат

Когда я пробую этот код:

A = 19 Mod 6.7

Результат 5, а должно быть 5.6 Может кто подскажет, что не так?


person Community    schedule 10.08.2017    source источник


Ответы (2)


Досадно, что VBA округляет 6.7 до 7, так как у него нет функции модуля с плавающей запятой (сравните с Java).

По сути, он оценивает 19 Mod CInt(6.7), а CInt использует немецкое округление, а не целочисленное усечение.

Если вы хотите продублировать поведение функции MOD на листе, см. VBA, эквивалентный функции Excel функция мода

person Bathsheba    schedule 10.08.2017

MOD — целочисленная функция в VBA. Было бы лучше использовать:

a - (b * (a / b))
person Rob Anthony    schedule 10.08.2017