.NETでDelphiのSystem.Frac
に相当するメソッドを探しています。DelphiのSystem.Fracと同等のメソッドはありますか?
Delphi関数は、小数点の後の値だけを残す整数全体を削除します。
私自身の方法を書くことができましたが、私がチェックすると思ったのですか?
.NETでDelphiのSystem.Frac
に相当するメソッドを探しています。DelphiのSystem.Fracと同等のメソッドはありますか?
Delphi関数は、小数点の後の値だけを残す整数全体を削除します。
私自身の方法を書くことができましたが、私がチェックすると思ったのですか?
私はそのような機能を知らず、私はそれが存在するとは思わない。そのような関数はMath
クラスの一部であり、そこには私は見ることができません。だから、value-Math.Truncate(value)
で行く必要があります:
public static double Frac(double value)
{
return value-Math.Truncate(value);
}
返事のため、このlink
double value, fraction;
value = 8.24;
fraction = value - (int) value;
OR
Decimal d=1.58M;
Decimal fractional=d-Decimal.Truncate(d);
最初のものはintの範囲が限定されており、2番目のものは負の数の小数部分(-0.25 => 0.75)を返しませんし、また丸めの問題もあります。最後のものは正しい。 – CodesInChaos
@DavidHeffernan私のbad.iはそれを削除しました – PresleyDias
感謝をしてみてください。さらに検索をしたところ、私はモジュラス1が働くことも発見しました。私。値%1;どちらの答えも正しくマイナスの値を処理します。 – James
@自己実際には、モジュラスは精度の問題を引き起こす可能性があります。 (私は浮動小数点演算のために仮定します)。 – James
'value%1.0'はモジュラスではなく、残りの部分であるため動作します。驚いたことに、それは私の変種よりも少し速いです。 – CodesInChaos