Как получить значение после десятичной точки из двойного значения в С#?
Я хотел бы получить десятичное значение из двойного значения.
Например:
23.456 -> 0.456
11.23 -> 0.23
Может ли кто-нибудь дать мне знать, как это сделать на С#?
Спасибо,
Махеш
Ответ 1
x - Math.Floor(x);
текст, чтобы довести до 30 символов
Ответ 2
В System.Math нет метода, который специально это делает, но есть два способа предоставления целочисленной части вашего десятичного числа, в зависимости от того, как вы хотите представить отрицательные десятичные числа.
Math.Truncate(n) вернет число до десятичной точки. Таким образом, 12.3 вернет 12, а -12.3 вернется -12. Затем вы вычтите это из исходного номера.
n - Math.Truncate(n) даст 0,3 как для 12.3, так и для -12.3.
Используя аналогичную логику, Math.Floor(n) возвращает целое число ниже десятичной точки, а Math.Ceiling(n) возвращает целое число, превышающее десятичную точку. Вы можете использовать их, если хотите использовать различную логику для положительных и отрицательных чисел.
Ответ 3
Это то, что для оператора модуля (%). Он дает вам остаток при делении первого операнда на второй. Просто разделите число, в котором вы хотите десятичное число на 1.
Пример:
decimal d = new Decimal(23.456);
d = d % 1;
// d = 0.456
[EDIT]
Прочитав комментарий Неллиуса о моем посту, я проверил его. При использовании удвоений оператор модуля фактически возвращает 0.45599999999999952. Мой ответ на самом деле неверен.