C#常见⾦额优选类型及其三种常⽤的取整⽅式(转)

⼀、C#常⽤的三种取整⽅式(主要适⽤于double、decimal、float这⼀类型的数据):
Math.Round():为四舍六⼊五取整
Math.Ceiling():为向上取整(只要有⼩数存在都会加1)
Math.Floor():向下取整,有⼩数都会舍去
⼆、Decimal、double、float数据类型介绍:
前⾔:之前在做⾦额计算的时候发现很多⼩数问题总是与实际⾦额有所偏差,还好是项⽬测试阶段要是等项⽬正式上线了,
数量⼀⼤的话那就不可估量的损失呀,别看⼀单只有那么的⼏分钱但是多了的话那可不可估量的损失,之前⼀直是使⽤
double进⾏计算⽽后来及时发现了bug改成了使⽤decimal进⾏⾦额数量之间的计算。
1、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;
2、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;
3、Float数据类型(单精准浮点型):
float 关键字表⽰存储 32 位浮点值的简单类型。下表显⽰了 float 类型的精度和⼤致范围。
默认情况下,赋值运算符右侧的实数被视为。因此,若要初始化浮点型变量,请使⽤后缀 f 或 F,如以下⽰例中所⽰:float x = 3.5F;
如果不在前⾯的声明中使⽤后缀,则会收到编译错误,因为你正尝试将值存储到 float 变量。
(转:https://wenku.baidu.com/view/05571f45c9aedd3383c4bb4cf7ec4afe04a1b1a8.html)

posted @ 2022-05-13 16:07  武道巅峰  阅读(64)  评论(0编辑  收藏  举报