俺简单地做了个,但里面有 (int)value类型转换,感觉满足不了要求,真求相?
 public static int GetInt(double value)
        {
            int result = 0;
            if (value == 0.0)
            {
                result = 0;
            }
            else
            {
                double temp = 0.0;
                if (value > 0.0)
                {                    try
                    {
                        result = (int)value;
                        temp = value - result;
                        if (temp > 1 || result < 0)
                        {
                            throw new OverflowException("数据溢出!");
                        }
                        if (temp >= 0.5)
                        {
                            result++;
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new OverflowException("数据溢出!");
                    }                }
                else if (value < 0)
                {
                    try
                    {
                        result = (int)value;
                        temp = value - result;
                        if (temp <= -1)
                        {
                            throw new OverflowException("数据溢出!");
                        }
                        if (temp <= -0.5)
                        {
                            result--;
                        }                    }
                    catch (Exception ex)
                    {                        throw new OverflowException("数据溢出!");
                    }
                }
            }
            return result;
        } 

解决方案 »

  1.   

    浮点数转为整数???int result = (int)2.02; 
      

  2.   

    无聊的问题.NET 内的 Double 符合 IEC 60559:1989 (IEEE 754) 标准。格式规范:http://steve.hollasch.net/cgindex/coding/ieeefloat.html
    参考代码:http://blog.csdn.net/cnming/article/details/1645045
      

  3.   

    本帖最后由 caozhy 于 2011-09-11 22:01:56 编辑
      

  4.   

    这可不是无聊的问题,是程序员能力测试题中的一题,考察算法的,就像是数据结构里的二叉树,图之类的问题,俺搞.NET的,俺很明白这样的问题俺这辈子可能都遇不上,不会这样的题照样搞.NET,但是能解决这类问题,是对知识和思维能力的锻练,如果让你不爽,请多多包涵
      

  5.   

    不想影响大家了,结贴,呵呵,谢谢caozhy的办法
      

  6.   

    这个题目本质是考你是否记忆 IEEE 754 规范。事实上这点和“程序员能力”毫不搭界。再说任何语言,都内置了浮点转换算法,也没有实际用途。
      

  7.   

    本帖最后由 caozhy 于 2011-09-11 22:55:18 编辑