crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в c++ double
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
SABROG Дата 8.3.2010, 20:39
  Так например:

da = 123.0001;
da = int(da*1000+0.005)/1000.0


10.0 - десятые, 1 знак
100.0 - сотые, 2 знака
1000.0 - тысячные, 3 знака
...
1000000.0 - миллионные, 6 знаков после запятой

Только надо проверку какую-нибудь, чтобы int не переполнился.
Tonal Дата 7.3.2010, 18:59
  Читать что такое числа с плавающей точкой до просветления. :)
Iron Bug Дата 6.3.2010, 20:28
 
Цитата(mycoding @ 6.3.2010, 15:36) *
Проверял на javascripte, нужны ещё 6 знаков после запятой.

поясни, как ты проверял сишный вывод "на жабаскрипте"?
у Си никакого урезания в double не происходит. жабаскрипт - не строго типизированный язык и, вообще говоря, там даже не знаю, можно ли надеяться хоть на какую-то точность представления или нет. это скриптовый язык, не рассчитанный на математические вычисления. я не знаю, как ты эти два слишком разных языка скрестить ухитрился, но попробуй сделай обычный вывод в консоль средставами Си и убедишься, что Си выдаёт тебе более чем достаточно знаков.
mycoding Дата 6.3.2010, 13:36
  Проверял на javascripte, нужны ещё 6 знаков после запятой.
Iron Bug Дата 5.3.2010, 22:01
 
Цитата(mycoding @ 5.3.2010, 18:07) *
Да нет, надо не cout, а именно в массив записать с точностью до 8-10 знаков после запятой, а то тот код который приведён, он почему-то только 3 знака берёт после запятой, а должно быть 6.

а как ты проверял, что 3?
вообще, в double дофига знаков. а sin возвращает значение типа double. у тебя там значения ни о чём для double - должны сохраняться все 15 знаков.
mycoding Дата 5.3.2010, 16:07
  Да нет, надо не cout, а именно в массив записать с точностью до 8-10 знаков после запятой, а то тот код который приведён, он почему-то только 3 знака берёт после запятой, а должно быть 6.
Iron Bug Дата 5.3.2010, 14:55
  "точность знаков" - это при печати тебе надо? в double нет никакой "точности знаков", он будет хранить 8 байт и там будет 15 знаков, по определению типа, если это Си.
можешь, конечно, попробовать искусственно отсекать "лишнее", если тебе очень критично. но вопрос - зачем?
mycoding Дата 5.3.2010, 9:52
  Подскажите пожалуйста, как сделать точность знаков вот в этом случае, ну например 10 после запятой
for(int i=0;i<100;i++)
{
sin1[i]=sin((double)i/10)*10+250;
}
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 9:04