Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,获取浮点数小数点前后位数的最有效方法是什么?_Java - Fatal编程技术网

在Java中,获取浮点数小数点前后位数的最有效方法是什么?

在Java中,获取浮点数小数点前后位数的最有效方法是什么?,java,Java,假设我有76.9号 如果数字是一个字符串,我可以使用substring方法计算前后的位数 如果数字是双精度或浮点数,我可以使用某种算法来计算前后的位数。谢谢。我没听懂。刚刚修改了我的问题。浮动可能不精确。因此,由于精度问题,位数很容易改变。因此,对他们的数量进行推理没有多大意义。你为什么关心它?浮点变量没有十进制数字:它们有二进制数字;这两者是不可通约的。表示为76.9的double在数学上并不等于76.9。您需要弄清楚您是指精确数学表示中的小数位数,还是指Java打印时的小数位数。如果你指的是

假设我有76.9号

如果数字是一个字符串,我可以使用substring方法计算前后的位数


如果数字是双精度或浮点数,我可以使用某种算法来计算前后的位数。

谢谢。我没听懂。刚刚修改了我的问题。浮动可能不精确。因此,由于精度问题,位数很容易改变。因此,对他们的数量进行推理没有多大意义。你为什么关心它?浮点变量没有十进制数字:它们有二进制数字;这两者是不可通约的。表示为
76.9
double
在数学上并不等于76.9。您需要弄清楚您是指精确数学表示中的小数位数,还是指Java打印时的小数位数。如果你指的是后者(我想你是这样认为的),那么你就必须把它转换成
字符串并进行计数。谢谢。我没听懂。刚刚修改了我的问题。浮动可能不精确。因此,由于精度问题,位数很容易改变。因此,对他们的数量进行推理没有多大意义。你为什么关心它?浮点变量没有十进制数字:它们有二进制数字;这两者是不可通约的。表示为
76.9
double
在数学上并不等于76.9。您需要弄清楚您是指精确数学表示中的小数位数,还是指Java打印时的小数位数。如果你指的是后者(我想你是这样认为的),那么你很难把它转换成
字符串
并进行计数。