Главная страница
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.016 c
4-36894
Pavels
2003-10-21 13:30
2003.12.12
как узнать активное окно в системе ?


1-36696
ruslan_as
2003-12-02 16:08
2003.12.12
Как проверить правильность ввода чисел в Pascale


3-36575
kill_john
2003-11-20 10:51
2003.12.12
Проблемы с русификацией в paradox


3-36531
IGray
2003-11-20 23:31
2003.12.12
Упредить


8-36769
GreySerg
2003-08-15 13:06
2003.12.12
Компоненты для работы с Mp3