C#常见金额优选类型及其三种常用的取整方式
前言:
这两天一直在做一个商城后台的对账方面的工作,忽然发现C#真的有很多值的学习的东西:
一、C#常用的三种取整方式(主要适用于double、decimal、float这一类型的数据):
Math.Round():为四舍六入五取整
Math.ceilling():为向上取整(只要有小数存在都会加1)
Math.Floor():向下取整,有小数都会舍去
二、Decimal、double、float数据类型介绍:
前言:之前在做金额计算的时候发现很多小数问题总是与实际金额有所偏差,还好是项目测试阶段要是等项目正式上线了,数量一大的话那就不可估量的损失呀,别看一单只有那么的几分钱但是多了的话那可不可估量的损失,之前一直是使用double进行计算而后来及时发现了bug改成了使用decimal进行金额数量之间的计算。
Decimal数据类型:
保存有符号表示 96 位 (12 个字节) 整数变量 10 的幂缩放的数字的 128 位 (16 个字节) 值。 缩放因子指定数字的小数点; 右侧数它的范围介于 0 到 28。 小数位数为 0 (没有小数位),最大可能值为 + 79228162514264337593543950335 / (+ /-7.9228162514264337593543950335E + 28)。 带 28 个小数的最大值是 + /-7.9228162514264337593543950335,和的最小的非零值为 + /-0.0000000000000000000000000001 (+ /-1E-28)。
Decimal
数据类型提供大量的最大有效位数数。 它支持最多 29 个有效位,并且可表示值超出 7.9228 x 10 ^28。 它是特别适合于计算,如财务、,需要大量的数字,但不能容忍舍入误差。Decimal
的默认值为 0。初始化方式:decimal myMoney = 300.5m;
Double数据类型(双精准浮点型):
保留带符号的 IEEE 64 位 (8 字节) 双精度浮点数,从-1.79769313486231570 e + 308 到-的值的范围 4.94065645841246544 e-324 负值和 4.94065645841246544 e-324 1.79769313486231570 e + 308 到正值。 双精度数字存储实际数目的近似值。
Double
数据类型提供了大量的最大和最小可能大量度。
Double
的默认值为 0。初始化方式:double d=0.3D;
Float数据类型(单精准浮点型):
float
关键字表示存储 32 位浮点值的简单类型。 下表显示了 float
类型的精度和大致范围。
默认情况下,赋值运算符右侧的实数被视为 double。 因此,若要初始化浮点型变量,请使用后缀 f
或 F
,如以下示例中所示:float x = 3.5F;
如果不在前面的声明中使用后缀,则会收到编译错误,因为你正尝试将 double 值存储到 float
变量。
微软字符类型详解:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/decimal
从小事做起,从点滴做起!
作者名称:追逐时光者
作者简介:一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。