то есть он, по идеи, должен писать две в женском роде, а пишет в мужском. (Пример взят из хелпа).
Есть ли какие-нибудь способы сделать окончание в женском роде?
Doubletostr(22.225,'\m4 р. \2p\f5 к.') = 'двадцать два р. двадцать три сотых к.'
кстати пример из документации у меня тоже нормально отрабатывает,
doubleToStr('22.225','\m4 р. \f\2p5 к.') = 'двадцать два р. двадцать три сотых к.'
aleks1232321
а как по-вашему должно делаться округление? В данном примере делается округление до сотых(параметр \2р - до сотых). Так что
22.225 ~ 22.23
все правильно!
Делайте либо так:
doubleToStr(Trunc('22.225',2),'\m4 р. \f5 к.') = 'двадцать два р. двадцать две сотых к.'
либо так:
doubleToStr('22.225','\m4 р. \f4 к.') = 'двадцать два р. двадцать две к.'
Может оно и правильно, наверняка правильно, но вот не всегда у меня, почему-то работает такое выражение doubleToStr('22.31','\m4 р \f4 к'). Поэтому приходится изгалаяться.
1.2.6. Функция DoubleToStr (Double, String) : String
Назначение
Преобразование числа в строку с учетом формата. Форматный перевод вещественных чисел в строку в основном используется для вывода результатов, связанных с деньгами.
Описание
function DoubleToStr (Num : Double, Format : String) : String;
Параметры
Num : Double - число, которое необходимо преобразовать в строку.
Format : String - формат.