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

Вниз

Число знаков   Найти похожие ветки 

 
Tonich ©   (2006-01-15 13:30) [0]

Вот такой вот вопрос.
есть некоторое число ну например 0,5546115. Необходимо произвести "качание"  этого число в последнем знаке после запятой.
Ну например
0,5546115+0,0000001
0,5546115+0,0000009
0,5546115-0,0000001
0,5546115+0,0000002
0,5546115-0,0000003
....
Так вот как узнать число знаков после запятой


 
Profi ©   (2006-01-15 13:34) [1]

Переведи в строку, длина - позиция запятой.


 
Tonich ©   (2006-01-15 13:35) [2]


> Profi ©   (15.01.06 13:34) [1]

да, это был один из вариантов, согласен
я думал есть более "красивые",
но всеравно посибо


 
Profi ©   (2006-01-15 13:40) [3]

Tonich ©   (15.01.06 13:35) [2]
Можно конечно в цикле делить на 10 без остатка, и считать сколько раз это получится, но строкой, как мне кажется, самое простое.


 
Nikolay M. ©   (2006-01-15 13:44) [4]


> Profi ©   (15.01.06 13:34) [1]

И что это будет с числами типа 0.2399999999999 или 0.2500000000001? Имхо, надо получше раскрыть тему получения этих чисел и того, что, собственно, требуется получить.


 
Tonich ©   (2006-01-15 13:55) [5]


> И что это будет с числами типа 0.2399999999999 или 0.2500000000001?

именно так и надо ))
Раскрыть тему? и откуда берутся числа, легко ))
Значить так, вот это число это эксцентриситет кометы в определенный момент времени, допустим на момент T1.
решая там уравнение Кеплера получаем координаты кометы после чего интегрируем(решение уравнений движения) из на момент T2, ну и соответственно получаем вектор состояния кометы на момент Т2.

ну а сам эксцентриситет дан с какой-то точность, и понятно, что с наименьшей точностью дан именно последний знак!!!

так вот для этого и производится качание последнего знака, что бы посмотреть как будит себя вести орбита кометы на момент Т2

то есть получить пачек орбит посчитать сигму и в конечном итоге дать результат в виде 0.2399999999999+-0,0000000000005 (для примера)

ну думаю так немного понятнее откуда и для чего ...


 
palva ©   (2006-01-15 13:55) [6]

Tonich ©   (15.01.06 13:30)  
> Так вот как узнать число знаков после запятой
Если число double или другого плавающего типа, то компьютер не знает, сколько знаков после запятой. Число он хранит в двоичном виде и в принципе можно узнать сколько двоичных разрядов после запятой он хранит. Но после перевода в 10 с.с. как правило возникает бесконечная периодическая дробь и вопрос о количестве знаков становится бессмысленным.


 
Nikolay M. ©   (2006-01-15 14:01) [7]


> > И что это будет с числами типа 0.2399999999999 или 0.2500000000001?
> именно так и надо ))

Да, но в первом случае это значение переменной а после присваивания a := 0.24; а второе - после a := 0.25;.


> сам эксцентриситет дан с какой-то точность

Значит, эту точность надо хранить в явном виде, а не пытаться ее получить из значения числа.


 
Tonich ©   (2006-01-15 14:06) [8]


> Значит, эту точность надо хранить в явном виде, а не пытаться
> ее получить из значения числа.


а если у меня таких чисел сотни мне что хранить сотни точностей???? это первое.
и второе, не факт что два числа даны с одинаковой точность


 
Nikolay M. ©   (2006-01-15 14:22) [9]

Программа будет работать на древних пентиумах? Если нет, тогда что такое несколько сотен чисел для современных компьютеров? И храни не собственно точность 0.001 в real, а число знаков после запятой в byte, если тебя так смущает расход памяти.


 
Набережных С. ©   (2006-01-15 14:28) [10]

Имхо, нужно оперировать не мифическим последним знаком после запятой, а обусловленной точностью исходных данных с учетом заданной точности вычислений.


 
Tonich ©   (2006-01-15 14:37) [11]


> И храни не собственно точность 0.001 в real, а число знаков
> после запятой в byte


> Имхо, нужно оперировать не мифическим последним знаком после
> запятой, а обусловленной точностью исходных данных

да явно точность данный не указана, нет такого что вот это дано стакой точность а это с такой,  поэтому я и отталкиваю от последнего знака..


> а число знаков после запятой в byte

собственно это я и спрашивал в посте )))

вообщем бонятно... [1] пост...


 
Nikolay M. ©   (2006-01-15 14:57) [12]


> поэтому я и отталкиваю от последнего знака..

Метрология (теория измерений) утверждает, что абсолютно неправильно отталкиваешься. Потому что если даже не принимать во внимание формат хранения вещественных чисел в компьютере, то некоторое число 123.456 - совсем не обязательно получено с точностью до одной тысячной только потому, что в нем последняя цифра стоит на третьей позиции после запятой (точность на самом деле м.б. как 1 сотая, так и 1 десятитысячная).
В [10] сказана истинная правда, так что не выдумывай упрощенных решений.


 
Tonich ©   (2006-01-15 15:00) [13]


> число 123.456 - совсем не обязательно получено с точностью
> до одной тысячной только потому, что в нем последняя цифра
> стоит на третьей

согласен на все 101%


 
Nikolay M. ©   (2006-01-15 15:02) [14]


> Tonich ©   (15.01.06 15:00) [13]

Ну а тогда откуда такие лжерешения?


 
Набережных С. ©   (2006-01-15 15:03) [15]


> Tonich ©   (15.01.06 14:37) [11]


> да явно точность данный не указана, нет такого что вот это
> дано стакой точность а это с такой,  поэтому я и отталкиваю
> от последнего знака..

Это бесперспективно:( Исходные данные откуда-то получены. Получивший их должен указать, какова точность этих данных - то есть указать величину абсолютной или относительной погрешности вычислений/измерений. Без этого можно вообще ничего не вычислять, а просто генерировать ответ с помощью Random - практическая неприменимость результата будет не меньше:))

Впрочем, я ни на чем не настаиваю - оно мне надо?


 
Tonich ©   (2006-01-15 15:13) [16]


> Ну а тогда откуда такие лжерешения?

ну наверное от туда, что данные взяты не из художественной литературы, а от туда где не стали бы приводить 150 знаков после запятой из которых верить только можно первому...

но еще раз повторюсь каждое число дано с различным числом знаков...

вообщем, можно закрывать пост....


 
Nikolay M. ©   (2006-01-15 15:17) [17]


> данные взяты не из художественной литературы, а от туда
> где не стали бы приводить 150 знаков после запятой из которых
> верить только можно первому...

Инопланетяне глумятся? :)
Вот и требуй "оттуда" точность предоставленных данных, по поводу всего остального тебе уже сказали и, похоже, ты сам это понимаешь.



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

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

Наверх




Память: 0.51 MB
Время: 0.062 c
4-1132145443
SergGG
2005-11-16 15:50
2006.01.29
послать сообщение на другой компьютер


2-1137396453
Silver__Dragon
2006-01-16 10:27
2006.01.29
Помощь при работе со съемными носителями.....


15-1136370868
dust
2006-01-04 13:34
2006.01.29
Народ, я уже не могу, я щасойду сума


15-1136449067
Dark Lord
2006-01-05 11:17
2006.01.29
Как из обычного файла шрифта создать bmp шрифт?


4-1131982364
Grief
2005-11-14 18:32
2006.01.29
Выполняется ли exeшник?!