Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.09.2014
Сообщений: 3
.NET 4.x

Получить определенные цифры дробной части числа

04.06.2015, 20:44. Показов 1501. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Подскажите, как это можно сделать быстрее.
Допустим, есть дробное число n=1.456781234678439; необходимо получить 4 последних цифры дробной части и представить их в виде UInt32. Пока мой самый примитивный вариант таков:
C#
1
2
 double n = 1.456781234678439;
  UInt32 k = ((UInt64)n * 1000000000000000) & 0xFFFF;
Как можно сделать это быстрей? Потому что таких преобразований в цикле будет очень много, а время очень дорого.

P.S. Кстати, использование ulong вместо UInt64 что-либо изменит?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2015, 20:44
Ответы с готовыми решениями:

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

Использование дробной части числа
Здравствуйте Форумчане ! У меня возник вопрос, у меня есть массив из чисел {0,001;0,0001} к примеру. Мне нужно в последующем работать...

Ввывод и целой части числа и дробной
C#, работа с формами.У меня в программе необходимо вывести х1 и х2 полностью, а не только целой части (т.е. х1 должно быть равно 4,5 (а не...

5
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 12
05.06.2015, 17:05
Попробуй так:
C#
1
2
3
4
double d = 1.456781234678439;
string s = d.ToString();
s = s.Substring(s.Length - 4, 4);
Int i = Convert.ToInt32(s);
Если не то не кидайте тапком, я новичок
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
05.06.2015, 17:19
NeStor46, Быстрее сделать нельзя.
Но у вас оно и неправильно считается. Правильно вот так:
C#
1
2
            var n = 1.456781234678439;
            var k = (UInt32)((UInt64)(n * 1000000000000000) % 10000);
0
162 / 154 / 73
Регистрация: 03.03.2014
Сообщений: 368
05.06.2015, 19:01
А можно поинтересоваться зачем вы это делаете? Просто точность вычисления этих последних чисел... может варьироваться.
0
0 / 0 / 0
Регистрация: 18.09.2014
Сообщений: 3
05.06.2015, 21:58  [ТС]
Not_Jon_Skeet, точность вычислений мне как раз и не нужна, так что с этим все в порядке. Мне нужны случайные величины, а они как раз берутся из таких неточных вычислений.

Storm23, прошу прощения, не цифры, а биты(ну или байты); неправильно сформулировал вопрос, аж сам себе поверил.
Тогда всё же придется делать так? (с учетом ваших поправок)
C#
1
2
            var n = 1.456781234678439;
            var k = (UInt32)((UInt64)(n * 1000000000000000) & 0xFFFFFFFF);
Тем самым беру последние 32 бита. По сути заполняю k значением.

murad_masimov, что-то мне подсказывает, что быстрее это работать точно не будет
0
0 / 0 / 0
Регистрация: 18.09.2014
Сообщений: 3
07.06.2015, 00:17  [ТС]
murad_masimov, ваш код помог в другом деле)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2015, 00:17
Помогаю со студенческими работами здесь

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

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

Как отсортировать массив по дробной части числа?
как отсортировать массив по дробной части числа Помогите пожалуйста

Определить первую цифру дробной части числа
Здравствуйте, помогите разобраться, задание такое: Дано положительное вещественное число Х. Определить первую цифру из его дробной...

Binding числа с округлением дробной части
Всем привет. Погуглил немного данный вопрос и нашел пару решений, но они мне не подходят. Поэтому спрашиваю тут)) Имеем окно приложения....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru