Арифметические правила (точность вычисления)
Поидее, поставил (double), значит выражение должно считаться с точностью double, и потом результат округлять до int. Но нет, деление сразу округляло до int, и результат был 650, а должен был быть 767(на калькуляторе посчитал).
Задачу то я решил, тупо поменял местами деление с умножением, и естественно результат стал нужным, но сам факт того что (double) не сработал заставил задуматься..
Почему так получилось? И где по подробнее почитать про арифметическую точность?
Точность вычисленияВопрос довольно простой. Как сделать так чтобы #include <iostream> #include <iomanip> using.
Точность вычисления определенного интегралаНе могу понять почему при установке точности вычисления t=1/1000 после запятой в ответе совпадают 2.
арифметические вычисления.уравнениеПодправьте пожалуйста код чтото я накосячил уравнение а*х*х+b=0 a b вводятся с клавиатуры .
Эта формула вычисляет 767.
Может быть у тебя вот так было написано:
Да действительно. Было по другому, изначально было так:
Перепроверил, без скобок результат 650, а с скобками 767.. Т.е. странно, поидее значит синтаксис привидения типа должен быть с скобками общими? Т.е. типа правильный стиль:
Просто получается, что если ты вдруг скобки поставиш, то результат будет уже другой, т.е. например ситуация:
Тут скобка эта означает первое действие (я и разсчитывал так в начальном варианте, хотя их ставить было не обязательно, но тут дело даже не в том что обязательно или нет, а в том что это выглядит правильно, т.е. на вид ты можеш определить точно порядок действия, а не полагаться на саму студию т.е. в каком порядке она будет вычислять)
Добавлено через 2 минуты Хах, лол эти 2 варианта тоже не правильно считают:
Теперь я совсем запутался, с какого перепуга то..
И что же, если я вдруг захочу поставить скобки, то мне придётся после каждом открытии скобки писать (double)? Мде, я то думал, что если в начале поставить, то вся формула будет вычисляться с точностью double..
Честно говоря - редкая тупость, что так сделано криво в плане синтаксиса, значит общего приведения типа не может быть вообще (для 3+ аргументов), т.е. при каждой новой операции в одной строке формулы, придётся всегда писать (double)
Пойду выпью яду чтоль, а то я себе представил формулу из 6 аргументов, где нужно писать 3 раза "(double)", и это всего 6 аргументов, бывает и больше, намного..
Это "общее приведение" делает приведение для результата выражения.
Тупой вариант, у меня числа в операции - целые, и они точно соответствуют целым числам, и они 4 байтовые! Мне не нужны 8 байтовый даблы, или 4 флоат, которые просто закорруптят значение, бывает в функцию надо int значение передать, и тут бац, я юзаю double или float, теперь вечно буду привязан к 2 проблемам - плавающие числа не точно отображают целочисленную часть, а при приведении, так вообще могут стянуть на +1 или -1 значение, и вторая - даже если всё ок, то тогда если я буду использовать эти переменные в других мат. операциях, где нужны int, то тут я опять попаду с проблемой приведения, как в случае с неправильным округлением, так и вечно писать (int) - имеется ввиду там где нужен int.
Ну я понял о чём ты, но это придётся контролировать всё, т.е. потенциально, придётся перепроверять каждую математическую операцию, т.к. хрен знает, будет ли зависить или нет, например:
Естественно, после плюса - операции будут int вычисляться.
ПРОСТО БРЕД. Вот так вот и сходят с ума.
Навеяло.. Недавно тут обсуждал тему того как в мире всё глупо устроено: 1 случай - Ночью светофор не горит, я дошол до половины дороги, с переди(в смысле с права) идут машины, стою жду на ограничительной полосе и смотрю на право, проходит последняя машина, я делаю шаг в перёд, поварачиваю голову в перёд и вижу боковым зрением как с лева по разганичивающей полосе летит мед. машина наверно под 100км\ч, без звука сирены, если бы я этот шаг в тот момент не сделал, был бы уже трупом. (реально со мной произошло, я просто ошеломлен был после этого, итог умозаключения - они спасают человека в мед. машине, но по дороге убивают ещё 10-ых.. ну не бред ли?) 2 случай -Обще известный факт о запрете курения в общ. местах, а почему его приняли то? - Потому что ТУПОГОЛОВЫЕ олени, стоят в толпе и курят сигарету, ну не кретины ли. Ну отойди в сторону и кури, зачем же дымить на других людей.. Иногда думаеш, да если по дороге ребёнка видиш, то автоматически сигарету прячеш от его взора, как и бутылку с пивом, просто чтоб не нести пропаганду, как пример дурного образа жизни, а тут ситуация, когда люди не понимают что дымят на других.. В результате приняли закон, ну и результат закона - естественно тоже тупорогий, т.к. тут и отмыв денег начался и спекуляция на законе.
Мде.. пора пить не пиво, а реально яд, ибо гнилой мир совсем, и некому наказать этих дигениратов. (щя я за грубость получу бан ^^ извините, но реально точно такой же тупой случай в программировании, что нет общего приведения типа для всей формулы)
Добавлено через 28 минут Навеяло то что хотелось сказать про тех кто так вот делает: "Выйдем и выслушаем" (камеди, выпуск "газовые переговоры") ^^
Точность вычисленияВроде очень банальная проблема, но никак не могу понять, что сделать procedure.
Точность вычисленияДана программа. x = 0.0: 0.0001: 2.0; y = (x.*atan(x))./(sqrt(1+x.^2)); z = trapz(x,y) Это.
Как увеличить точность вычисленияВсем добрый день) Как увеличить точность вычисления? к примеру матлаб считает что I=.
Точность вычисления переменной doubleЗдравствуйте, В довольно навороченном приложении такие определения class Class01 < public.