一、需求说明
在项目的开发中,遇到一些除法计算内容会产生小数值,但是又需要根据项目的实际情况将这些小数内容化为整数,方便后续内容的实现。
二、需求分析
将小数内容转为整数【但是转为小数又分为几种情况】:
①将小数取为下一个整数;
②将小数只取整数;
③标准的四舍五入取整;
三、实现方法
3.1、将小数取为下一个整数
Math.Ceiling 方法 (System) | Microsoft Learnhttps://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 Learnhttps://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 Learnhttps://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
}
}
运行结果如下: