zoukankan      html  css  js  c++  java
  • C#判断是否为浮点数的整数倍

    C#判断浮点型数据是否为浮点型数据的整数倍

     

    因为取余%符号对double型数据是不起作用的,比如0.6%0.2 的结果并不为0,这是由于浮点运算的精度所导致的,基本的想法是,先把两个数右移同样的位数,变成正整数后,再用取余符号。

    代码:

    class DoubleTest
        {
    
            public void StartTest()
            {
                double aaa = 17632.23;
                double div = 1.2;
                string straaa = aaa.ToString();
                string strdiv = div.ToString();
                string [] strArrya =straaa.Split('.');
                string[] strArrydiv = strdiv.Split('.');
                double power=0; //要右移的位数
                if (strArrya.Length == 2 && strArrydiv.Length == 2)
                {
                    power = Math.Max(strArrya[1].Length, strArrydiv[1].Length);
                }
                else if(strArrya.Length ==2)
                {
                    power = strArrya[1].Length;
                }
                else if (strArrydiv.Length == 2)
                {
                    power = strArrydiv[1].Length;
                }
                else
                {
                    power = 0;
                }
                
                double x = System.Math.Pow(10,power);
                int intaaa = (int)System.Math.Round(aaa * x);
                int intdiv = (int)System.Math.Round(div * x);
    
                if (intaaa % intdiv == 0)
                {
                    Console.WriteLine("yes");
                }
                Console.Read();
            }
    
        }

     

  • 相关阅读:
    ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
    Node.js
    AC多模式匹配算法
    红黑树的实现原理
    OAuth2.0 用户验证授权标准 理解
    SNMP 和 NetBios协议理解
    使用RSA非对称密钥算法实现硬件设备授权
    常用
    目录列表
    Memcache的 简介
  • 原文地址:https://www.cnblogs.com/meiwlongblog/p/2441046.html
Copyright © 2011-2022 走看看