双舍入查询

时间:2012-04-21 22:27:46

标签: c# double rounding

虽然有很多非常相似的问题,但没有一个真的完全回答我的问题,所以请耐心等待。

鉴于两个双打,我需要将它们舍入到两个小数位,然后检查差异是否正好是0.01。

这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

其他人指出了比较浮点数的问题。你最好的选择是将每个乘以100,然后将整数部分作为整数进行比较:

static bool ExactlyPennyDifference(double d1, double d2)
{
    return Math.Abs((int)Math.Round(d1 * 100) - (int)Math.Round(d2 * 100)) == 1;
}