繁体   English   中英

如何在不删除Java中尾随零的情况下找到双精度数字小数点后的长度?

[英]how to find length after decimal point of a double number without removing trailing zeroes in java?

假设您有一个双Double d = 12.123223800000数,例如Double d = 12.123223800000 我们如何找到从小数点到末尾的数字长度,其中包括所有尾随零。

Double d = 12.123223800000;
String t = d.toString();

这是从双数中删除所有尾随零。

您可以直接分配字符串吗? Java原语由于二进制表示而不会保留尾随零,但是在数学中尾随零是没有意义的..依此类推。 此示例会有点儿工作

Double d = 12.123223800000;
String str = "12.123223800000"; // d.toString() won't work here
int length = str.length() - str.indexOf(".");
System.out.println(String.format("%."+ length +"f", d)); 
//prints out - 12.1232238000000

12.12322380000012.1232238之间没有区别。 将尾部零初始化为Double时,它们将被删除。 如果您仍然需要这样的解决方案

String d = "12.123223800000";
System.out.println((d.length()-d.indexOf("."))-1);

这应该工作:

String text = Double.toString(Math.abs(d))
int decimalPlaces = text.length()  - text.indexOf('.') - 1;

无法计算尾随零,因为它们不影响双精度数字的数学值。 编辑:除了您直接将值分配给字符串。 使用Java primitve类型,这是不可能的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM