2012-01-03 36 views

答えて

5

私はそのような機能を知らず、私はそれが存在するとは思わない。そのような関数はMathクラスの一部であり、そこには私は見ることができません。だから、value-Math.Truncate(value)で行く必要があります:

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

感謝をしてみてください。さらに検索をしたところ、私はモジュラス1が働くことも発見しました。私。値%1;どちらの答えも正しくマイナスの値を処理します。 – James

+0

@自己実際には、モジュラスは精度の問題を引き起こす可能性があります。 (私は浮動小数点演算のために仮定します)。 – James

+2

'value%1.0'はモジュラスではなく、残りの部分であるため動作します。驚いたことに、それは私の変種よりも少し速いです。 – CodesInChaos

0

返事のため、このlink

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

OR

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

最初のものはintの範囲が限定されており、2番目のものは負の数の小数部分(-0.25 => 0.75)を返しませんし、また丸めの問題もあります。最後のものは正しい。 – CodesInChaos

+2

@DavidHeffernan私のbad.iはそれを削除しました – PresleyDias

関連する問題