C#常见金额优选类型及其三种常用的取整方式
2021-07-14 06:14
标签:正式 使用 font 向上取整 并且 数据 简单 错误 偏差 这两天一直在做一个商城后台的对账方面的工作,忽然发现C#真的有很多值的学习的东西: 一、C#常用的三种取整方式(主要适用于double、decimal、float这一类型的数据): 二、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)。 2、Double数据类型(双精准浮点型): 保留带符号的 IEEE 64 位 (8 字节) 双精度浮点数,从-1.79769313486231570 e + 308 到-的值的范围 4.94065645841246544 e-324 负值和 4.94065645841246544 e-324 1.79769313486231570 e + 308 到正值。 双精度数字存储实际数目的近似值。 3、Float数据类型(单精准浮点型): 默认情况下,赋值运算符右侧的实数被视为 double。 因此,若要初始化浮点型变量,请使用后缀 如果不在前面的声明中使用后缀,则会收到编译错误,因为你正尝试将 double 值存储到 微软字符类型详解:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/decimal 从小事做起,从点滴做起! C#常见金额优选类型及其三种常用的取整方式 标签:正式 使用 font 向上取整 并且 数据 简单 错误 偏差 原文地址:https://www.cnblogs.com/lonelyxmas/p/9545980.htmlMath.Round():为四舍六入五取整
Math.ceilling():为向上取整(只要有小数存在都会加1)
Math.Floor():向下取整,有小数都会舍去
Decimal
数据类型提供大量的最大有效位数数。 它支持最多 29 个有效位,并且可表示值超出 7.9228 x 10 ^28。 它是特别适合于计算,如财务、,需要大量的数字,但不能容忍舍入误差。Decimal
的默认值为 0。初始化方式:decimal myMoney = 300.5m;Double
数据类型提供了大量的最大和最小可能大量度。Double
的默认值为 0。初始化方式:double d=0.3D;float
关键字表示存储 32 位浮点值的简单类型。 下表显示了 float
类型的精度和大致范围。f
或 F
,如以下示例中所示:float x = 3.5F;
float
变量。
上一篇:Scrapy,终端startproject,显示错误TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
下一篇:Win快捷键