我的C API有一个函数,它作为输入a double.只有3或4个值是有效输入,所有其他值都是无效输入和拒绝.
我想检查是否可以准确表示所有有效输入值,以便我可以避免epsilon检查以提高可读性.
是否有一个工具(最好在命令行上)可以告诉我十进制值是否具有精确的二进制表示作为浮点值?
我需要知道如何做这个程序.
calculation1: 1/4 = 0,25
calculation2: 1/8 = 0,125
calculation3: 47/183 = 0,25683060109289617486338797814207......
calculation4: 58/889 = 0,06524184476940382452193475815523......
calculation5: 1/5 = 0,2
Run Code Online (Sandbox Code Playgroud)
计算1,2和5的结果将得到一个简短的结果,没有句号或无穷无尽的数字串.计算3和4的结果非常长且复杂.
如何检查哪个计算是"简单计算"并给出"短"结果.
我试过这个并且肯定给出了错误的结果......就像你看到的那样,计算结果double在我的应用程序中有数据类型.
static bool IsInt(double x)
{
try
{
int y = Int32.Parse(x.ToString());
return true;
}
catch
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望很清楚我在问什么.