Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 07.04.2015
Сообщений: 260
1

Минимальное изменение(шаг) числа типа double

13.09.2015, 11:13. Просмотров 891. Ответов 3
Метки нет (Все метки)


Здравствуйте. Как можно узнать минимальное изменение(шаг) числа типа double? Например, есть число 1.2345678. Его минимальное изменение(шаг) равен 0.0000001.
Либо, как узнать количество знаков после запятой?
Число заранее не известно. В зависимости от количества знаков после запятой будут предприниматься соответствующие действия.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2015, 11:13
Ответы с готовыми решениями:

Как сгенерировать случайное число типа я double имея на входе 2 числа типа double - минимальное и максимальное
Например: public class ExtendedRandom : Random { public ExtendedRandom() ...

Написать функцию min с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double
Написать функцию min с переменным числом параметров, которая находит минимальное из чисел типа int...

Найти минимальное положительное число типа double
Всем привет . Помогите , пожалуйста, написать код для программы . Программа должна найти...

Минимальное значение типа double перед нулем
Нужно найти значение типа double, самое маленькое, перед нулем. Но не используя простой способ с...

3
Эксперт .NETАвтор FAQ
9838 / 4797 / 1726
Регистрация: 11.01.2015
Сообщений: 5,976
Записей в блоге: 34
13.09.2015, 11:23 2
asdfg15432, Точность числа с плавающей точкой определяется не числом знаков после запятой, а числом значащих знаков. Для double число значащих знаков равно 15-16.
Например данные числа будут храниться точно:
0.123456789012345
12345.6789012345
123456789012345.0
0
67 / 67 / 23
Регистрация: 07.11.2013
Сообщений: 539
13.09.2015, 11:36 3
Как на счёт перевести в string и посчитать?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double d = 0.546431354654, minD = 0;
            string s = d.ToString();
            //так
            for (int i = 0; i < s.Length - 1; i++)
            {
                if (s[i] != ',')
                {
                    s = s.Remove(i) + "0" + s.Substring(i + 1);
                }
            }
            s = s.Remove(s.Length - 1) + "1";
 
            //или так
            string tmpS = s;
            s = "";
            s = s.PadRight(tmpS.IndexOf(','), '0') + ',';
            s = s.PadRight(tmpS.Length - tmpS.IndexOf(','), '0') + '1';
 
            minD = Convert.ToDouble(s);
1
Эксперт .NETАвтор FAQ
9838 / 4797 / 1726
Регистрация: 11.01.2015
Сообщений: 5,976
Записей в блоге: 34
13.09.2015, 11:45 4
Цитата Сообщение от asdfg15432 Посмотреть сообщение
Либо, как узнать количество знаков после запятой?
А разве это имеет смысл? Число знаков после запятой - это только в школьной математике есть такое понятие. В вычислительной математике - нет.
Во-первых, действительное число может быть представлен как минимум в двух формах. Например, два числа:
0.15 и 0.149999(9) - в точности равны. Хотя второе имеет бесконечное число знаков после запятой.
Во-вторых, число знаков после запятой - зависит от системы счисления. Например число 0.1 в двоичной системе (и следовательно в компьютере) является бесконечной дробью.
И наконец в третьих, число знаков после запятой всегда зависит от точности вычислений, а она для дробных чисел всегда ненулевая.
Итого - бесполезное это занятое, считать число знаков после запятой.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2015, 11:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Можно ли из числа типа double получить 2 числа типа int?
Если можно, то напишите пожайлуста название функции или способ.

Определить минимальное положительное значение переменной типа double не равное нулю
Написать программу на си,для определения величины машинного E(эпсилон)?

В массив типа double записываю целые числа (типа int), но ошибка не вылазиет!
Вот программулька: #include &lt;iostream&gt; using namespace std; #include &lt;conio.h&gt; int main()...

Создать структуру включающую в себя константу типа double, закрытое поле типа double
Помогите пожалуйста с заданием, создать структуру включающую в себя константу типа double, закрытое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.