Valentin Это только сопроцессор - плавающая арифметика. В норме умножить на 100(2 цифры) 1000(3), загрузить как целое и поделить назад... В принципе при выводе можно это сделать, но только надо добавть при выводе что-то типа 0.005 или 0.0005 В языках есть функция round(округление), но в асм и API ее нет :-(
valterg Спасибо. Но если я ввожу в Ед-контрол =1,2 или 0,366 ( не целое число). И далее также..... Вычисляю при помощи встроенного калькулятора. Как заокруглить результат???????
Я делал субклассинг контрола и просто не допускал ввода ненужного мне числа. Ну например,фиксированный формат числа. ##.### все что не подходит под формат просто не вводится. Ввести два раза символ "." MD, более 3 знаков после него тоже MD.
S_Alex Не вводить последние знаки - не означает заокруглить. Это просто -отсечь. 1,0515=1,052 Вот что нужно.
Valentin Округление до третьей цифры после запятой = складываешь с 0,0005 и выводишь три последних знака 1,0510+0,0005=1,051 1,0514+0,0005=1,051 1,0515+0,0005=1,052 1,0519+0,0005=1,052
Всем спасибо. Нашел и реализовал АПИ; invoke FpuFLtoA, 0, 3, ADDR aNum, SRC1_FPU где в данном случае второй параметр округляет до 3-х цифр после запятой, а в переменной aNum (з-й параметр) хранится число в текстовом формате, которое нужно заокруглить.