| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > урезка чисел после запятой для типа Single |
| Автор: Grif13 18.1.2006, 16:47 |
| есть число типа Single, которая равняется например "-37,455120087" надо получить из него число "-37,45" Делаю так UData:=(int(UData*100))/100; и так UData:=(round(UData*100))/100; получается что то вроде "-37.459999084" в чем проблема |
| Автор: DemoCode 18.1.2006, 16:51 |
| FormatFloat попробуй |
| Автор: sexton 18.1.2006, 16:59 |
| Может не совсем то, но все же - RoundTo |
| Автор: Marriage 18.1.2006, 17:26 | ||
pNumber - число Str - строка точность ограничивается 15-ю значимыми цыфрами |
| Автор: Alexeis 18.1.2006, 17:28 | ||
Операции над числами с плавающей точкой (в данном случае деление) осуществляются с некоторой машинной погрешностью Так что подобный результат неизбежен. ps Красиво форматировать можно только строки и целые числа |
| Автор: Guedda 18.1.2006, 17:37 | ||
| функция FloatToStrF. Можешь почитать в хелпе Вот метод:
|
| Автор: Grif13 19.1.2006, 08:48 |
| ни чего не помогает Может проблема в другом даже если в переменную типа single заношу к примеру 2.37 то в в ней оказывается 2.3699998856 |
| Автор: Alexeis 19.1.2006, 10:10 | ||
такое тоже возможно так как не все вещественные десятичные можно перевести точно в двоичное представление. 2.37D = 10.0(1011110000)B те с периодом. |
| Автор: Rennigth 19.1.2006, 10:45 | ||
не оптимально может быть, но все же:
|