powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Неправильное представление double
8 сообщений из 8, страница 1 из 1
Неправильное представление double
    #39584586
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сначала я перевожу double в int
Код: c#
1.
2.
3.
4.
private int CovrertVal(double val)
{
    return (int)(val * 100000);
}


Потом запрашиваю обратно и перевожу int в double
Код: c#
1.
double dvalue = ivalue / 100000.0000;


значение искажается - послал 1, принял 0.998 а мне нужна точность до 5 цифры.
...
Рейтинг: 0 / 0
Неправильное представление double
    #39584591
Pu4koff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или читайте про числа с плавающей запятой и как они устроены, или пользуйте какой-нибудь decimal.
...
Рейтинг: 0 / 0
Неправильное представление double
    #39584594
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7значение искажается - послал 1, принял 0.998 а мне нужна точность до 5 цифры.
Не может такого быть. Может 0.999 пришло ?

Почитай про погрешности https://habrahabr.ru/post/266023/
...
Рейтинг: 0 / 0
Неправильное представление double
    #39584598
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pu4koffИли читайте про числа с плавающей запятой и как они устроены, или пользуйте какой-нибудь decimal.
а что decimal дает точность до пятой цифры после запятой?
...
Рейтинг: 0 / 0
Неправильное представление double
    #39584599
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima Tjenya7значение искажается - послал 1, принял 0.998 а мне нужна точность до 5 цифры.
Не может такого быть. Может 0.999 пришло ?

Почитай про погрешности https://habrahabr.ru/post/266023/
нетю именно 0.998. и так все числа на третей цифре после запятой искажает
...
Рейтинг: 0 / 0
Неправильное представление double
    #39584609
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Dima Tпропущено...

Не может такого быть. Может 0.999 пришло ?

Почитай про погрешности https://habrahabr.ru/post/266023/
нетю именно 0.998. и так все числа на третей цифре после запятой искажает
Пример давай. Не могу повторить

Код: c#
1.
2.
3.
4.
5.
6.
7.
        static void Test(Double x) {
			Console.WriteLine(x);
			Int32 i = (Int32) (x * 100000);
			Console.WriteLine(i);
			Double y = i * 0.00001;
			Console.WriteLine(y);
		}



результат Test(1.0);1
100000
1

Возможно что в некоторых случаях i окажется на 1 меньше, чем надо, но на 1, а не на 2 и более. У тебя меньше на 200, это невозможно потому что Double имеет точность 15-16 десятичных знаков, Int32 всего 9 знаков.
...
Рейтинг: 0 / 0
Неправильное представление double
    #39584645
Pu4koff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Pu4koffИли читайте про числа с плавающей запятой и как они устроены, или пользуйте какой-нибудь decimal.
а что decimal дает точность до пятой цифры после запятой?
В определённых условиях и double даст точность больше 5 символов.
decimal так не поплывёт, хотя в данных примерах и double не должен так "портиться".
А может вообще лучше так и хранить в int.
...
Рейтинг: 0 / 0
Неправильное представление double
    #39584659
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ой, категорически извиняюсь, мне по пути ошибку вносили, офсет дурацкий.

без офсета все работает четко.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Неправильное представление double
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]