C#常见金额优选类型及其三种常用的取整方式
2018-08-28 00:30
531 查看
这两天一直在做一个商城后台的对账方面的工作,忽然发现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#常用的三种取整方式(主要适用于double、decimal、float这一类型的数据):
Math.Round():为四舍六入五取整 Math.ceilling():为向上取整(只要有小数存在都会加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类型的精度和大致范围。
默认情况下,赋值运算符右侧的实数被视为 double。 因此,若要初始化浮点型变量,请使用后缀
f或
F,如以下示例中所示:
float x = 3.5F;
如果不在前面的声明中使用后缀,则会收到编译错误,因为你正尝试将 double 值存储到
float变量。
微软字符类型详解:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/decimal
从小事做起,从点滴做起!
相关文章推荐
- C#常见金额优选类型及其三种常用的取整方式
- c# 中各种类型的常用转换方式
- C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识
- c# 两数相除的三种取整方式 1.向上取整 2.向下取整 3.四舍五入
- struts2-----访问web元素的三种方式and 常用返回类型
- 使用C#创建webservice及三种调用方式 (ASP.NETweb编程常用到的27个函数集)
- C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识
- 图像灰度化的常用三种方式及其实现
- C#引用类型转换的常见方式总结
- C#调用C++的DLL数据类型转换方式
- C#调用C++的DLL 所有数据类型转换方式
- C#常用控件及其常用属性的介绍
- 高效掌握C#第一回---C#中的基本数据类型及其相互转换
- C#调用C++的DLL搜集整理的所有数据类型转换方式
- puppet三种认证注册方式详解及常见报错分析
- C#实现的三种方式实现模拟键盘按键
- C#接口的三种实现方式
- 缓慢渐变维度 (Slowly Changing Dimension) 常见的三种类型及原型设计
- C# using 三种使用方式
- C#三种循环终止方式