Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Как увеличить переменную типа double на 0.5 ?   Найти похожие ветки 

 
Ptr   (2003-12-02 14:08) [0]

Как увеличить переменную типа double на 0.5 ?


 
Юрий Зотов ©   (2003-12-02 14:12) [1]

Ни за что не поверите - прибавить к ней 0.5


 
Ptr   (2003-12-02 14:15) [2]

;))
Спасибо !
например:
var x: double
begin
x := 0;
x := x+0.5;
x = ? по вашему 0.5
а получается x = 0.500000000000000006


 
Тимохов   (2003-12-02 14:17) [3]

Ах вот Вы о чем.
Так устроены числа с плав. точкой, и если не ошибаюсь, то не только в delpi.

Пользуйтесь другим типов, например currency или еще чем.


 
Ptr   (2003-12-02 14:19) [4]

И на этом спасибо


 
_юзер_   (2003-12-02 14:21) [5]

используй вместо double extended и таких проблем не будет


 
Eugene1501 ©   (2003-12-02 14:23) [6]

Или реши какая точность тебе нужна, сделай функцию округления до нужного кол-ва знаков после запятой и

x := 0;
x :=MyRound(x+0.5);
x = ?


 
Ptr   (2003-12-02 14:25) [7]

C extended не получается проще всего конечно работать с Currency
СПАСИБО ВСЕМ ЗА УЧАСТИЕ !!!!!!!!!!!!


 
tipman ©   (2003-12-02 14:25) [8]

Юрий Зотов © (02.12.03 14:12) [1]

Вау! Круто!!!!! Теперь я так всегда и буду делать!

Ptr (02.12.03 14:08)

А в чём ваще проблема?
Я както сам натыкался на такое:
var a,b:Double;
.....
a:=1
b:=b+a/2
то прибавится что-то около 0.5, но не 0.5, и решение тока округлять до нужной точности


 
Sergey_Masloff   (2003-12-02 14:35) [9]

tipman ©, Ptr
Ребята, ну про машинное представление чисел прочитать - ну 2 часа времени нужно. И на всю жизнь запомнить. Слабо?

Нам про это (представление вещественных чисел) рассказывали на информатике за полгода до того как к машине подпустить в первый раз. Проблем с пониманием ни у кого не возникло. А сейчас этот вопрос в разных вариациях на всех форумах по программированию по 3 раза в неделю поднимается.


 
k-man ©   (2003-12-02 15:03) [10]


> x = ? по вашему 0.5
> а получается x = 0.500000000000000006

Мимец просто :)
Ежели точность нужна юзай Currency например...
На каждом столбе написано :)


 
Тимохов   (2003-12-02 15:24) [11]

Можно еще использовать decimal (там точность до 10 знаков после запятой) - но это для фанатов, т.к. в дельфи его напрямую нет - надо юзать oleaut32.dll.


 
Юрий Зотов ©   (2003-12-02 15:38) [12]

> Ptr
> tipman
> и всем другим, не знающим, что такое вещественные числа и не умеющим с ними работать

Читать вот это до полного просветления сознания:
http://www.delphikingdom.ru/helloworld/reals.htm


 
Тимохов   (2003-12-02 17:22) [13]

Особая благодарность Юрию Зотову, за отличную ссылку!



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
1-36730
ased
2003-12-02 12:05
2003.12.12
Запуск exe для 1024x768 в 800x600


3-36569
NewD
2003-11-20 08:27
2003.12.12
Как передать var - параметр в хр. процедуру


3-36529
Alex-kosmonavt
2003-11-21 12:50
2003.12.12
Отображение запроса


7-36860
StasVashuk
2003-10-06 16:40
2003.12.12
Вопрос о модулях.


1-36690
sandy
2003-12-02 19:13
2003.12.12
RichEdit