请选择 进入手机版 | 继续访问电脑版
MSIPO技术圈 首页 IT技术 查看内容

C#实现将小数值四舍五入为整数

2023-07-13

一、需求说明

        在项目的开发中,遇到一些除法计算内容会产生小数值,但是又需要根据项目的实际情况将这些小数内容化为整数,方便后续内容的实现。

二、需求分析

将小数内容转为整数【但是转为小数又分为几种情况】:

①将小数取为下一个整数;

②将小数只取整数;

③标准的四舍五入取整;

三、实现方法

3.1、将小数取为下一个整数

Math.Ceiling 方法 (System) | Microsoft Learnicon-default.png?t=N658https://learn.microsoft.com/zh-cn/dotnet/api/system.math.ceiling?view=net-6.0

Ceiling(Decimal)

返回大于或等于指定的十进制数的最小整数值。

Ceiling(Double)

返回大于或等于指定的双精度浮点数的最小整数值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_HalfAdjust
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("---------C#中常用的四舍五入函数介绍---------");
            double value1 = 3.01;
            double value2 = 3.49;
            double value3 = 3.50;
            double value4 = 3.51;
            double value5 = 3.99;
            double value6 = -0.01;

            Console.WriteLine("---- Math.Ceiling()----将双精度的内容统一舍为加1的整数");
            string result1=string.Format("{0}={1}; {2}={3}; {4}={5}; {6}={7}; {8}={9}; {10}={11}\n", value1,Math.Ceiling(value1),
                value2,Math.Ceiling(value2), value3,Math.Ceiling(value3), value4,Math.Ceiling(value4),
                value5,Math.Ceiling(value5),value6,Math.Ceiling(value6));
            Console.WriteLine(result1);

            Console.ReadLine();

        }//Class_end
    }
}

运行结果如下: 

3.2、将小数只取整数

Math.Floor 方法 (System) | Microsoft Learnicon-default.png?t=N658https://learn.microsoft.com/zh-cn/dotnet/api/system.math.floor?view=net-7.0

Floor(Double)

返回小于或等于指定双精度浮点数的最大整数值。

Floor(Decimal)

返回小于或等于指定小数的最大整数值。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_HalfAdjust
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("---------C#中常用的四舍五入函数介绍---------");
            double value1 = 3.01;
            double value2 = 3.49;
            double value3 = 3.50;
            double value4 = 3.51;
            double value5 = 3.99;
            double value6 = -0.01;

            Console.WriteLine("---- Math.Floor()----将双精度的内容统一舍为小数点前的整数");
            string result2 = string.Format("{0}={1}; {2}={3}; {4}={5}; {6}={7}; {8}={9}; {10}={11}\n", value1, Math.Floor(value1),
                value2, Math.Floor(value2), value3, Math.Floor(value3), value4, Math.Floor(value4),
                value5, Math.Floor(value5), value6, Math.Floor(value6));
            Console.WriteLine(result2);

            Console.ReadLine();

        }//Class_end
    }
}

运行结果如下:

3.3、标准的四舍五入取整

Math.Round 方法 (System) | Microsoft Learnicon-default.png?t=N658https://learn.microsoft.com/zh-cn/dotnet/api/system.math.round?view=net-7.0

Round(Double, Int32, MidpointRounding)

使用指定的舍入约定将双精度浮点值舍入到指定数量的小数位数。

Round(Decimal, Int32, MidpointRounding)

使用指定的舍入约定将十进制值舍入到指定数量的小数位数。

Round(Double, MidpointRounding)

使用指定的舍入约定将双精度浮点值舍入为整数。

Round(Double, Int32)

将双精度浮点值舍入到指定数量的小数位,并将中点值舍入到最接近的偶数。

Round(Decimal, Int32)

将小数值舍入到指定数量的小数位,并将中点值舍入到最接近的偶数。

Round(Double)

将双精度浮点值舍入到最接近的整数值,并将中点值舍入到最接近的偶数。

Round(Decimal)

将小数值舍入到最接近的整数值,并将中点值舍入到最接近的偶数。

Round(Decimal, MidpointRounding)

使用指定的舍入约定将十进制值舍入为整数。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_HalfAdjust
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("---------C#中常用的四舍五入函数介绍---------");
            double value1 = 3.01;
            double value2 = 3.49;
            double value3 = 3.50;
            double value4 = 3.51;
            double value5 = 3.99;
            double value6 = -0.01;

            Console.WriteLine("---- Math.Round()----将双精度的内容按照四舍五入的整数");
            string result3 = string.Format("{0}={1}; {2}={3}; {4}={5}; {6}={7}; {8}={9}; {10}={11}\n", value1, Math.Round(value1),
                value2, Math.Round(value2), value3, Math.Round(value3), value4, Math.Round(value4),
                value5, Math.Round(value5), value6, Math.Round(value6));
            Console.WriteLine(result3);


            Console.ReadLine();

        }//Class_end
    }
}

运行结果如下:

 

相关阅读

热门文章

    手机版|MSIPO技术圈 皖ICP备19022944号-2

    Copyright © 2024, msipo.com

    返回顶部