簡體   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