decimal 后面的后缀M的意思
今天看个视频,看到个 decimal q=123123.123123M,有个后缀M,查了半天查了这个结果
C#与Java一样,都支持了float与double这两种浮点数的基础型别。这两种浮点数的型式皆为A*Base^Exp,其中A是浮点数的尾数(mantissa),Base是基底,而Exp则是指数部份。这意谓该浮点数的值为A乘上基底的Exp次方。关于浮点数的设计,于数值方法或数值分析的课程中皆会探讨,本处则不必细言。透过上次的设计虽然可以表示极大范围的实数,但是由于实数是连续的,其实有无限多个,所以无论如何以数字的方式表示实数,都有其极限。当利用浮点数来表示某个实数时,若该浮点数表示法无法表示时,会进行进位(rounding)的动作,进位后难免产生误差(rounding error)。尤其人皆采十进制思考运算,但float与double皆以2为基底,可想而知的是,透过这种方式来表示浮点数,会有许多看起来以十进制可以表示的小数,以2为基底时却发生了进位误差。C#引入了一个名为decimal的型别,而decimal型别存在的最大原因就是要降低进位误差,因为它的基底采取的是10而非2。请参考下例:
double d = 0.12345678901234567890123456789;
decimal m = 0.12345678901234567890123456789m;
Console.WriteLine(d);
Console.WriteLine(m);
其中decimal m行宣告了一个decimal型别的变量,而之后的0.12345678901234567890123456789数值常数后加上m(也可写成M),是在C#中用来表示该常数为decimal型别之用。如同float常数需加上d(也可写成D)一般。在这个例子中,d与m皆被指派了相同的常数值,但实际印出的结果却如下:
0.123456789012346
0.1234567890123456789012345679
两个数值都发生了进位的误差,但可以观察出以decimal型别表示十进制的数字,其进位误差小多了。而降低进位误差的代价,就是付出(也同时浪费)储存的空间,以及运算的速度。
转至于http://blog.sina.com.cn/s/blog_4dabb12801000anp.html
decimal 后面的后缀M的意思相关推荐
- PowerShell学习笔记(1)-基础
PowerShell学习笔记(1):基础 前段时间在知乎上得知Windows下的一款强大的命令行工具PowerShell(原谅我刚刚得知). 其强大的功能,令人惊叹,兴趣盎然,这么优秀的工具值得我 ...
- Mysql 存储过程实现订单流水号
存储过程实现流水号 存储过程 实现效果:SHHP201806080002 前缀编码--prefixStr 'SHHP' 后缀编码长度-- suffixCodeLength 长度4 (0002) 日期字 ...
- 国开计算机组成原理边学边练,国家开放大学-计算机组成原理-形考任务-2017全部答案.docx...
国家开放大学-计算机组成原理-形考任务-2017全部答案.docx 一.单项选择题(每小题6分,共36分)题目1.下列数中最小的数是 B .选择一项A. (1010011)2B. (42)8 正确C. ...
- decimal(C# 参考)
decimal(C# 参考) decimal 关键字表示 128 位数据类型. 同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算. decimal 类型的大致范 ...
- python decimal 转 float_python教程之二python数学运算
存储数据变量 #两个变量交换值,通过第三个参数实现 print('两个变量交换值,通过第三个参数实现'); #第一种方法是通过第三个参数实现 x=5;#变量赋值 y=11; #变量赋值 print(' ...
- 英语词根、词根、前缀、后缀大全
文章来源:http://www.hudong.com/wiki/%E8%8B%B1%E8%AF%AD%E8%AF%8D%E6%A0%B9%E3%80%81%E8%AF%8D%E6%A0%B9%E3%8 ...
- C#基础 uint,long,ulong,float,decimal 定义并初始化
.NET Framework : 4.7.2 IDE : Visual Studio Community 2019 OS : Windows 10 x64 ty ...
- C# int uint long ulong byte sbyte float double decimal 范围,及类型!
C# int uint long ulong byte sbyte float double decimal 范围,及类型! static void Main(string[] args){Conso ...
- 英语前后缀大全 - 快速理解英语单词
作为程序员离不开和英语单词打交道,而基础弱的人面对庞大的单词量只会望而却步.收集了大量英语前后缀,用以帮助快速理解英语单词! 前缀 一. 表示否定的前缀 dis-加在名词.形容词,动词之前. disa ...
最新文章
- cartographer 配置过程
- java 图像 截取正方形,Instagram API仅返回正方形(裁剪)图像
- python培训好学吗-Python爬虫培训好学吗?
- 互联网数据中心安全管理方案
- [SDOI2015]星际战争
- Linux下git使用
- hibernate mysql 性能_MyBatis和Hibernate相比,优势在哪里?
- Qt工作笔记-QTableWidget设置委托(使用QStyledItemDelegate画3只小猪)
- 成为java架构师需要具备那些技能?
- 名企面试官精讲典型编程题之数据结构字符串篇
- Kaggle酒推荐,winemag-data-130k-v2.csv
- 爱希ISee人体感应器,雷达人体存在探测应用,毫米波雷达技术方案
- 海外服务器配置多少带宽比较合适?
- vios 多 vlan设置
- 解决微信小程序银行卡号输入转换格式
- html去除图片链接边框及其链接虚线
- Func:统一网络控制器
- 如何用python画一束花_如何在AI里绘制一束春天的花朵
- Part 9 常微分方程基础与常见方程求解法
- dns服务期搭建使用_DNS服务器的搭建与使用详解