Malak Sajad Alhaidary Ответов: 2

У меня есть число с 15 цифрами после плавающей запятой, и мне нужно извлечь 15-ю цифру и использовать ее. Как мошенник делает это в C#


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

Что я уже пробовал:

я пытаюсь написать код на c# для решения этой проблемы

2 Ответов

Рейтинг:
20

OriginalGriff

Это будет нелегко ... double в C# есть только 15~16-значная точность: двухместный (Справочник по c#) | Майкрософт документы[^] таким образом, нормальное "умножение и удаление целочисленной части" не будет работать. На самом деле вполне вероятно, что "15 - я цифра после точки с плавающей запятой" вообще не хранится-имейте в виду, что числа с плавающей запятой являются представлениями двоичных хранимых данных и не обязательно точны.
Один из способов сделать это-подход" грубой силы и невежества": преобразовать его в строку и получить из нее цифры.

Но лучшее решение - посмотреть, из чего именно вы получаете число, и посмотреть, как оно генерируется - я предполагаю, что входные данные не являются точными 15 цифрами, поэтому маловероятно, что значение, с которым вы играете, действительно точно с такой точностью.


Рейтинг:
1

Malak Sajad Alhaidary

Я нахожу лучшее решение, Преобразуя число в строку, а затем с помощью функции последовательности извлекаю последний символ и преобразую его в целое число. если a=0.1245378, то целое число становится равным 8.

string s = Convert.ToString(a);
string l = s.Substring(s.Length -1);
int integer = Convert.ToInt16(l);