我有一個小數功能:在打印參數C#小數精度功能
public decimal NGD(long TotalPages, long XHits, long YHits, long BothHits)
{
return ((Math.Max(XHits, YHits)-BothHits)/(TotalPages - Math.Min(XHits, YHits)));
}
我得到它轉換爲return ((36100000 - 3580000)/(44000000000 - 5630000));
但在我的應用程序NGD(44000000000,36100000,5630000,3580000)我得到一個0時應該是0.00073918549
請注意,當'(十進制)'強制轉換如此放置時,減法仍然使用'long'執行。如果可以保證它不會溢出(這與「long.MinValue」和「long.MaxValue」不同)。但你也可以使用'return((decimal)Math.Max(XHits,YHits) - BothHits)/((decimal)TotalPages - Math.Min(XHits,YHits));'在這種情況下,十進制「減號」。 – 2013-03-10 15:30:52