Минимальное изменение(шаг) числа типа double - C#
Формулировка задачи:
Здравствуйте. Как можно узнать минимальное изменение(шаг) числа типа double? Например, есть число 1.2345678. Его минимальное изменение(шаг) равен 0.0000001.
Либо, как узнать количество знаков после запятой?
Число заранее не известно. В зависимости от количества знаков после запятой будут предприниматься соответствующие действия.
Решение задачи: «Минимальное изменение(шаг) числа типа double»
textual
Листинг программы
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);