当前位置: 首页 > 知识库问答 >
问题:

如何计算浮点数和double中的小数位数?

壤驷泓
2023-03-14

我对编程很陌生,在大学里我们学习了不同类型的数字(整数、短数、浮数、双数)。Float和double是浮点数。通常,它们由一个符号+/-、一个尾数和一个指数组成。每个部分占用一定数量的比特。一个浮动最多可以显示小数点后7位,最多可以双倍显示16位。其公式是:

23·log10(2)=23·(log(2)/log(10))≈23·0.3≈7(浮点数小数点后)

52·0.3≈16(双人小数点后)

我知道23和52是尾数的位。但对数从何而来?这是如何计算小数点后的数量的?

共有1个答案

葛昱
2023-03-14

23位可以表示223值。N个十进制数字可以表示10N值。

计算可以代表23位的同一组值的十进制数字的数目简化为求解方程式中的N:

223=10n

log(223)=log(10n)

23*log(2)=n*log(10)

N=23*(log(2)/log(10))

当然,你不能有小数位或小数位,所以你必须向上或向下四舍五入,这取决于结果将如何使用。

 类似资料:
  • 问题内容: 我似乎在使用浮点数时失去了很多精度。 例如,我需要求解一个矩阵: 这是我用来从文本文件导入矩阵的代码: 我需要使用gauss-seidel进行求解,因此需要重新排列x,y和z的方程式: 这是我用来重新排列方程式的代码。是系数矩阵,是答案向量: 但是,我得到的答案并不精确到小数位。 例如,从上面重新排列第二个方程式后,我应该得到: 我得到的是: 这看起来似乎不是一个大问题,但是当您将数字

  • 我正在尝试在旁边使用值方法。 不幸的是,编译器说不兼容的类型。 如果我将s更改为s,它仍然不喜欢它。

  • 我正在学习浮点格式(IEEE)。在单精度浮点格式中,提到尾数有24位,因此它具有6 1/2十进制数字的精度(根据书中“理解机器”),以及7.22十进制数字的精度。 我不明白精度的小数位数是怎么算出来的。有人能告诉我吗?

  • 问题内容: 假设我们有一个双值(应该是动态的) 现在,需求是对数字进行拆分并获得十进制数字和小数位数,它们将是: 我得到了小数部分的结果,但是请您给出小数部分的提示?非常感谢。 问题答案: double number = 12345.6789; // you have this int decimal = (int) number; // you have 12345 double fractio

  • 问题内容: 我正在尝试计算由文本字段接收的输入填充的数组的总数,均值和中位数。我设法算出了总数和均值,但我只是无法获得中位数。我认为在执行此操作之前需要对数组进行排序,但是我不确定如何执行此操作。这是问题吗,还是我没有找到另一个问题?这是我的代码: 问题答案: Java中的Arrays类具有静态的排序功能,您可以使用调用该功能。

  • 我试图计算由TextField接收的输入填充的数组的总数、平均值和中位数。我已经算出了总数和平均数,但中位数无法计算出来。我认为在我可以这样做之前需要对数组进行排序,但我不确定如何这样做。是这个问题,还是还有一个我没有找到的?下面是我的代码: