2012-01-03 3 views

ответ

5

Я не знаю такой функции, и я не думаю, что она существует. Такая функция будет частью класса Math, и я не вижу ее там. Так что вам придется идти с value-Math.Truncate(value):

public static double Frac(double value) 
{ 
    return value-Math.Truncate(value); 
} 
+0

Спасибо за быстрый ответ. Имея дальнейший поиск, я также нашел, что модуль 1 работает. То есть значение% 1; Оба ответа на них тоже корректно обрабатывают значение минус. – James

+0

@Self Фактически модуль может привести к ошибкам. (Я предполагаю из-за математики с плавающей запятой). – James

+2

'value% 1.0' работает, потому что это не модуль, а остаток. Удивительно, но это немного быстрее, чем мой вариант. – CodesInChaos

0

попробовать это link

double value, fraction; 
value = 8.24; 
fraction = value - (int) value; 

ИЛИ

Decimal d=1.58M; 
Decimal fractional=d-Decimal.Truncate(d); 
+1

Первый из них ограничен ограниченным диапазоном 'int', второй не возвращает дробную часть для отрицательных чисел (-0.25 => 0.75) и может также иметь проблемы округления. Последний - правильный. – CodesInChaos

+2

@DavidHeffernan мой bad.i удалил его – PresleyDias

Смежные вопросы