Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
1

Дробная часть в целое число

23.12.2015, 15:41. Показов 2089. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как преобразовать число double вида 0.######... в ######... как можно проще
Например: 0.431 -> 431
0.35236 -> 35236
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2015, 15:41
Ответы с готовыми решениями:

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

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

Дробная часть обрезается
Начал изучать по этому сильно не пинать. Не могу понять почему при попытке рассчитать среднее...

Куда то девается дробная часть
Ребята помогите пожалуйста. Разработал генератор квадратных уравнений. Идея такова. Генерируем...

15
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
23.12.2015, 15:49 2
Проще всего перевести число в строку, удалить два (в вашем случае) первых символа и перевести обратно
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
23.12.2015, 15:51 3
Цитата Сообщение от Gomg Посмотреть сообщение
как преобразовать число double вида 0.######... в ######
А как вы себе это представляете?
0.1 — это 1? или 10? или 1000?
А 0.00001 — это все равно 1?
0.1 == 0.0000001?
0
Заблокирован
23.12.2015, 15:56 4
C#
1
2
3
4
5
6
var n = 0.431;
var n_s = n.ToString();
var sep = NumberFormatInfo.CurrentInfo.NumberDecimalSeparator;
var index = s.IndexOf(sep) + 1;
var fraction_s = n.Substring(index, s.Length - index);
var fraction = double.Parse(fraction_s);
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
23.12.2015, 16:05 5
Volrajas, попробуйте с числом 0.0000431.
0
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
23.12.2015, 16:09  [ТС] 6
Цитата Сообщение от kolorotur Посмотреть сообщение
А как вы себе это представляете?
0.1 — это 1? или 10? или 1000?
А 0.00001 — это все равно 1?
0.1 == 0.0000001?
Отрезать "0."

Добавлено через 17 секунд
Цитата Сообщение от kolorotur Посмотреть сообщение
А как вы себе это представляете?
0.1 — это 1? или 10? или 1000?
А 0.00001 — это все равно 1?
0.1 == 0.0000001?
Отрезать "0."
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
23.12.2015, 16:12 7
Цитата Сообщение от Gomg Посмотреть сообщение
Отрезать "0."
То есть впереди идущие нули значения не имеют?
Или их нужно сохранить, чтобы число 0.005 стало 005, а не 5?
0
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.12.2015, 16:15 8
Цитата Сообщение от Melif Посмотреть сообщение
Проще всего перевести число в строку
И я того же мнения. универсальное решение.
0
Заблокирован
23.12.2015, 16:20 9
да там ошибочка int.Parse в конце, а не double.Parse
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
23.12.2015, 16:21 10
Цитата Сообщение от Hikari Посмотреть сообщение
И я того же мнения. универсальное решение.
Тут выше товарищ попробовал так сделать.
Пока — неудачно.

Добавлено через 28 секунд
Цитата Сообщение от Volrajas Посмотреть сообщение
да там ошибочка int.Parse в конце, а не double.Parse
А вы попробуйте
0
Заблокирован
23.12.2015, 16:29 11
да действительно пара опечаток, но в основном то правильно (проверил, работает)
C#
1
2
3
4
5
6
var n = 0.431;
            var n_s = n.ToString();
            var sep = NumberFormatInfo.CurrentInfo.NumberDecimalSeparator;
            var index = n_s.IndexOf(sep) + 1;
            var fraction_s = n_s.Substring(index, n_s.Length - index);
            var fraction = double.Parse(fraction_s);
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
23.12.2015, 16:32 12
Цитата Сообщение от Volrajas Посмотреть сообщение
но в основном то правильно (проверил, работает)
Я там чуть выше предложил попробовать с числом 0.0000431
0
Заблокирован
23.12.2015, 16:34 13
Цитата Сообщение от kolorotur Посмотреть сообщение
Я там чуть выше предложил попробовать с числом 0.0000431
аа)))) то что оно там в экспоненциальной форме конвертится? да чет не подумал, хз тогда, там это как то должно указывать при конвертировании в строку вроде, но не знаю как
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
23.12.2015, 16:43 14
Цитата Сообщение от Volrajas Посмотреть сообщение
то что оно там в экспоненциальной форме конвертится?
Да там еще веселее может быть, если учесть NaN и Infinity

Цитата Сообщение от Volrajas Посмотреть сообщение
там это как то должно указывать при конвертировании в строку вроде
Да, можно указать количество знаков после запятой, например так:
C#
1
n.ToString("N16");
Но тогда встает вопрос: сколько знаков указывать, чтобы не хватить лишнего?
Потому как вместо 431 можно запросто получить 43100000000.

Можно умножать в цикле на 10 и брать целую часть, но это тоже не 100% панацея, т.к. тип double не точен и постоянно будет "плыть", выдавая непонятно откуда взявшиеся значения.
0
5 / 5 / 0
Регистрация: 28.06.2013
Сообщений: 116
23.12.2015, 17:11  [ТС] 15
Ого ответов. В общем надо перевести вещественное число в 2 систему. Целую часть отрезал Math.Truncate(); а дробную из целого вычел Трункейт. А в каком формате переводится число после запятой без понятия. Мне надо из него int получить

Добавлено через 7 минут
Почитал в википедии перевод дробной части, ничего удалять не надо. https://ru.wikipedia.org/wiki/... 1.8B.D0.B5
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
23.12.2015, 17:23 16
Цитата Сообщение от Gomg Посмотреть сообщение
В общем надо перевести вещественное число в 2 систему
Так с этого бы и начинали — там достаточно на 2 постоянно умножать и брать целую часть
0
23.12.2015, 17:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2015, 17:23
Помогаю со студенческими работами здесь

Дано целое число N. Найти наименьшее целое положительное число K, при котором выполняется неравенство 3^k > N.
Используя цикл while Дано целое число N. Найти наименьшее целое положительное число K, при котором...

Опускается дробная часть поля при заполнении DataGridView
Всем привет! Создал БД посредством SQlite, создал таблицу с полем типа real. В это поле записываю...

Разделить дробное число на 2 части: целая часть числа и его дробная часть
Пользователь вводит с клавиатуры сумму в валюте (дробное число). Вывести по отдельности количество...

Ввести число х, выяснить что большеЖ целая часть х, или его Дробная часть, уу
Ввести число х, выяснить что больше: целая часть х, или его Дробная часть, умноженная на 10. Если...

Ввести число х, выяснить что больше: целая часть х, или его дробная часть, умноженная на 10
Ввести число х, выяснить что больше: целая часть х, или его Дробная часть, умноженная на 10. Если...

Ввести число x, выяснить что больше : целая часть числа x или его дробная часть умноженная на 10
Ввести число x, выяснить что больше : целая часть числа x или его дробная часть умноженная на 10....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru