在C#中,浮点数主要有两种类型:
float:这是单精度浮点数,占用4个字节(32位)的内存空间。取值范围为1.5x10^-38至3.4x10^38,精度为小数点后7位。
double:这是一个双精度浮点数,占用8个字节(64位)的内存空间。取值范围为2.9x10^-308至1.7x10^308,精度为小数点后15位。
在C#中,decimal是一种数值数据类型,用于存储高精度的十进制数。与浮点数类型(float和double)不同,decimal具有更高的精度,更适合在金融和货币计算等领域使用。
十进制类型存储为128位(16字节),可以表示更广泛的值,可以准确表示十进制小数。值的范围由正数和负数组成,从-7.9228162514246431e+28到7.9228162514246431e+28。
由于小数精度较高,主要用于需要精确计算的场合,如金融交易、货币计算和科学计算等。使用小数可以减少计算错误和精度损失。
在C#中,可以使用decimal关键字来声明decimal类型的变量。例如:
csharpdecimalmyDecimal=123.45m;
注意,声明decimal类型的变量时,必须在后面添加字母“m”或“M”数量。表示该变量是十进制类型。
采用底除法,取余,底为16,
384/16,商为24,余数为0
24/16,商是1,余数是8
1/16,商0,余数1
从上到下依次是个位、十位、百位
所以最终结果是(180)16。
为了表示浮点数,数字被分为两部分:整数部分和小数部分。例如,浮点数14.234的整数部分为14,小数部分为0.234。首先,将浮点数转换为二进制数。
解:由于符号为正,因此用0表示。指数为6。在Excess_127表示法中,指数加上127得到133,用二进制表示。尾数是当。将位数增加到32位,得到。注意不要省略左边的0,因为它是十进制数。如果省略这个0,则相当于将该数字乘以2。该数字在内存中存储为32位。尾数为0,如下所示。
详细信息:
浮点数由两个定点部分组成,其范围完全取决于表示的位数或位数。虽然分量线性地取决于其范围,但浮点范围线性地取决于指数分量范围内的显着范围和指数函数,这大大增加了范围的大小。
在典型的计算机系统中,“双精度”浮点二进制数(64位)有53位用于系数(一位隐式),11位用于指数,1位用于符号位。由于指数范围为[-1022,1023]并且308约为log10(2),因此此格式中正浮点数的范围约为10到10。整个格式范围从约-10扩展到+10(参见IEEE754)。
参考来源:-浮点精度
上一篇:台式电脑如何扩大内存
下一篇:浮点数精度 内存