c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2,对于这个无限不循

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 22:14:25
c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2,对于这

c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2,对于这个无限不循
c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2
c#怎么储存更大的数字?
double和long储存的数字范围的确很广,但总有上限,比如我计算√2,对于这个无限不循环小数,我要精确到小数点后几百亿个数字,double肯定达不到,可怎样达到?

c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2,对于这个无限不循
据我所知C#最精确的类型是decimal,最多精确28位有效数据,按你的要求,只能手动实现高精度,而且精确到几百亿即使银河那个级别的大型机也要跑到人类毁灭,而且在大型机上是不会使用C#的.
以下内容摘自《C#语言规范5.0》的4.1.7章
decimal 类型
decimal类型是 128 位的数据类型,适合用于财务计算和货币计算.decimal类型可以表示具有 28 或 29 个有效数字、从 1.0 × 10−28到大约 7.9 × 1028 范围内的值.
decimal类型的有限值集的形式为 s × c × 10-e,其中符号 s是 0 或 1,系数c由 0 ≤ c < c < 296 给定,小数位数 e满足 0 ≤ e ≤ 28.decimal类型不支持有符号的零、无穷大或 NaN.decimal可用一个以 10 的幂表示的 96 位整数来表示.对于绝对值小于 1.0m的 decimal,它的值最多精确到第 28位小数.对于绝对值大于或等于 1.0m的 decimal,它的值精确到小数点后第28 或 29 位.与 float和 double数据类型相反,十进制小数数字(如 0.1)可以精确地用 decimal表示形式来表示.在 float和 double表示形式中,这类数字通常变成无限小数,使这些表示形式更容易发生舍入错误.
如果二元运算符的一个操作数为 decimal类型,则另一个操作数必须为整型或 decimal类型.如果存在一个整型操作数,它将在执行运算前转换为 decimal.
decimal类型值的运算结果是这样得出的:先计算一个精确结果(按每个运算符的定义保留小数位数),然后舍入以适合表示形式.结果舍入到最接近的可表示值,当结果同样地接近于两个可表示值时,舍入到最小有效位数位置中为偶数的值(这称为“银行家舍入法”).零结果总是包含符号 0 和小数位数 0.
如果十进制算术运算产生一个绝对值小于或等于 5 × 10-29 的值,则运算结果变为零.如果 decimal算术运算生成的结果对于 decimal格式来说太大,则将引发 System.OverflowException.
与浮点型相比,decimal类型具有较高的精度,但取值范围较小.因此,从浮点型到 decimal的转换可能会产生溢出异常,而从 decimal到浮点型的转换则可能导致精度损失.由于这些原因,在浮点型和 decimal之间不存在隐式转换,如果没有显式地标出强制转换,就不可能在同一表达式中同时使用浮点操作数和 decimal操作数.

c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2c#怎么储存更大的数字?double和long储存的数字范围的确很广,但总有上限,比如我计算√2,对于这个无限不循 C#中怎么对double型取两位小数. C# double类型怎么取小数点后三位 C#怎么把一个double 类型的数,转换成小数点后两位的格式double a = 1.0546546;如何使 a 只取 1.05 ? 怎么转换 C#中Double Click和mouse Double Click有啥区别 如果两个整数储存变量var1和var2中,该进行什么样的布尔测试,看看其中的一个(但不是两个)是否大于10?用C#编一个程序怎么编? c# 温度(℃)怎么被声明成变量,比如 double 温度(℃); 我这写法肯定是有问题的,求解决,急! C#中怎么判断多个数值(double类型)上下起伏在30%以内 C#如何实现这样的三位数,这个三位数恰好等于其每位数字的立方和 相同温度下,两种稀氨水A和B,浓度分别为0.2 mol/L和0.1mol/L,则A和B的OH-浓度之比虽然说0.1mol/L的比0.2 mol/L的电离程度更大,但是0.2 mol/L的浓度更大,那么最后电离程度的氢氧根浓度谁比谁大怎么能确 C#和PHP的区别 double q; if(!double.TryParse(A1.Text.ToString(),out q))double q;if(!double.TryParse(A1.Text.ToString(),out q)){MessageBox.Show(请输入数字!);}这是怎么判断的? C# (double?)double.Parse()中,问号作用是什么 储存汽油和柴油的储存油罐怎么辨别油罐的质量,是否合格不泄油? C#怎么把一个枚举转换成为一个数字? visual c++和visual c#怎么读? C#产生随机数的问题Random rd = new Random();double W = rd.Next() % 12 / 10.0 - 1.2;请问W是产生的什么随机数?如果想产生0——1之间的小数(不能为0和1)该怎么写代码? C#中double 数组里做除法怎么保留小数点后面的数据double[] yangpin = new double[601];//样品int[] huangban = new int[601];//黄板int[] kongbai = new int[601];//空白yangpin[i] = (b[i] - kongbai[i]) / (huangban[i] - kongbai[i]);像