wapmorgan / Morphos

A morphological solution for Russian and English language written completely in PHP. Provides classes to inflect personal names, geographical names, decline and pluralize nouns, generate cardinal and ordinal numerals, spell out money amounts and time intervals. / Морфологическая библиотека для английского и русского языков. Склоняет имена собственные, названия географических объектов, склонение и плюрализация имен собственных и другое.
http://wapmorgan.github.io/Morphos/
MIT License
788 stars 105 forks source link

Update MoneySpeller.php #87

Closed Zuzest closed 4 years ago

Zuzest commented 4 years ago

fix problem http://sandbox.onlinephpfunctions.com/code/124c95f5bcd92df16f851ca3ffaaea873fa8a4e9

случайно обнаружена проблема с числом 65536.40 выдает текст 39 копеек баг воспроизводится именно с числом в 40 копеек, когда целая часть больше 65536 и меньше 80000

методом тыка выяснилось следующее баг повторяется в некотором диапазоне при пересечении байтовой границы хранения числа т.е. баг повторяется с числами: 256.4 - пересекли границу 1 байт 65536.4 - пересекли границу 2 байта 16777216.4 - пересекли границу 3 байта 4294967296.4 - пересекли границу 4 байта

проблема где то в недрах php моя правка решает эту проблему

b1rdex commented 4 years ago

floor возвращает float, из-за этого, вероятно, проблема и появилась. @Zuzest можешь, пожалуйста, добавить тест для этого случая?

Zuzest commented 4 years ago

я дико извиняюсь, но я пока не умею тесты :( да и несовсем понимаю как написать тест на php-функцию

b1rdex commented 4 years ago

Добавил тесты в #91. Этот pull request можно закрыть.

Zuzest commented 4 years ago

Спасибо. Теперь понятно что надо было сделать.