我有一个小数功能:在打印参数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