【发布时间】:2014-10-09 08:13:30
【问题描述】:
我正在编写一个需要处理毫米和英寸的应用程序。我编写了一些简单的代码来在两个度量单位之间进行缩放,并且我还有一些代码来获取十进制数并将其转换为分数。但是,当我使用 Math.Floor 从小数中拆分整数时,我发现我并不总是得到返回的预期值。我附上了一些代码来演示这个问题。我希望最终结果是 6,但我得到了 5。我很难理解为什么。有什么想法吗?
// This is a .Net 4.5 console application.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double ValA = 6;
double ValB = 0;
double ValC = 0;
double ValD = 0;
ValB = ValA * 25.4;
ValC = ValB / 25.4;
ValD = Math.Floor(ValC);
Console.WriteLine(ValA.ToString());
Console.WriteLine(ValB.ToString());
Console.WriteLine(ValC.ToString()); // This returns 6 as expected
Console.WriteLine(ValD.ToString()); // But this returns 5.
Console.ReadKey();
}
}
}
【问题讨论】:
-
重复:非常多。不好的问题:一点也不。 Upvote/downvote 论点:Stackoverflow 永远无法解决的问题,但社区 :)