前言:

  这两天一直在做一个商城后台的对账方面的工作,忽然发现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

从小事做起,从点滴做起!

C#常见金额优选类型及其三种常用的取整方式的更多相关文章

  1. Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)

    Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...

  2. 游戏开发中IIS常见支持MIME类型文件解析

    游戏开发中IIS常见支持MIME类型文件解析 .apkapplication/vnd.android .ipaapplication/vnd.iphone .csbapplication/octet- ...

  3. 常见的Content-Type类型

    Content-Type说明 MediaType,即是Internet Media Type,互联网媒体类型:也叫做MIME类型, 在Http协议消息头中,使用Content-Type来表示具体请求中 ...

  4. Monkey压力测试Android常见的错误类型及黑白名单的使用方法

    Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...

  5. 常见文件MIME类型

    常见文件MIME类型.asx,video/x-ms-asf .xml,text/xml .tsv,text/tab-separated-values .ra,audio/x-pn-realaudio ...

  6. fastadmin 金额 字段类型及html验证

    金额 字段类型  整数  小数 decimal    10      2 float          10     2 html验证 <div class="form-group&q ...

  7. 常见的MIME类型与00截断

    常见的MIME类型 1)超文本标记语言.html文件的MIME类型为:text/html 2)普通文本.txt文件的MIME类型为:text/plain 3)PDF文档.pdf的MIME类型为:app ...

  8. Collection两个常见的集合类型: ArrayList可重复集有序 ,HashSet不可重复集

    package seday11; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; ...

  9. MySQL 中常见的时间类型有三种 DATE, DATETIME 和 TIMESTAMP

    MySQL 中常见的时间类型有三种 DATE, DATETIME 和 TIMESTAMP,其中 DATE 类型用于表示日期,但是不会包含时间,格式为 YYYY-MM-DD,而 DATETIME 和 T ...

随机推荐

  1. Kali Linux安装中文输入法全纪录

    前言: 我使用的是英文版的Kali,默认没有安装中文输入法,也没有安装小企鹅(我后来才知道),折腾了很久,现在终于可以在Kali里输入中文了(这篇文章就是在Kali里面用leafpad写的).安装的过 ...

  2. error: src refspec XXX matches more than one

    error: dst refspec v1. matches more than one. error: failed to push some refs to '' 错误原因是 branch名和ta ...

  3. PHP写的爬虫,爬指定网站页面上的各种图片

    打算用php实现一个爬虫,这是爬指定页面的图片的一段程序,其他的部分还没调试好,先把这个放上来 <?php $string=file_get_contents("http://www. ...

  4. .net core在网关中统一配置Swagger

    最近在做微服务的时候,由于我们是采用前后端分离来开发的,提供给前端的直接是Swagger,如果Swagger分布在各个API中,前端查看Swagger的时候非常不便,因此,我们试着将Swagger集中 ...

  5. Poi2010 Monotonicity 2

    树状数组优化dp 可以证明最优解一定是通过之前的最优转移过来的,所以每一个点只需要保存以该节点为结尾的最长长度即可 对于不同符号,等于号维护数组,大于小于维护树状数组 #include<cstd ...

  6. bzoj3289 Mato的文件管理 莫队+树状数组

    求逆序对个数,莫队套树状数组 #include<cstdio> #include<iostream> #include<cstring> #include<c ...

  7. mysql服务设置远程连接 解决1251 client does not support ..问题

    在docker里面创建mysql容器后设置的密码在远程主机连接时候出现错误: 一.如果是在docker里面安装的mysql镜像则需要先进入mysql里面:参考上一篇:https://www.cnblo ...

  8. Javapoet源码解析

    Javapoet:是生成.java源文件的开源API  github:https://github.com/square/javapoet   以生成一个HelloWrold.java文件为例: pa ...

  9. 前端利用百度开发文档给的web服务接口实现对某个区域周边配套的检索

    最近项目需要实现地图功能,以便于实现对房源周边配套设施的检索.内容如下 其实百度官方有对应的api,但是对于一个网站来说这样的样式难免有些难看 这样的结果显然不能满足当下的需求,所以我决定利用官方给的 ...

  10. 【.NET异步编程系列3】取消异步操作

    在.Net和C#中运行异步代码相当简单,因为我们有时候需要取消正在进行的异步操作,通过本文,可以掌握 通过CancellationToken取消任务(包括non-cancellable任务).  早期 ...