簡體   English   中英

字符串修剪出來的長度不正確

[英]String trim coming out with incorrect length

我正在使用Java來確定double的長度,作為更大程序的一部分。 此時雙倍是666但長度返回為5,這是一個大問題。 我在這里閱讀了另一個問題,但是這對我來說不起作用。 我將展示我的代碼以及嘗試使用結果模擬以前的解決方案。

我原來的代碼:

double Real = 666;
int lengthTest = String.valueOf(Real).trim().length();
System.out.println("Test: " + lengthTest);

這打印5

修改不起作用,基本上只是將代碼分解成多行。

    double Real = 666;
    String part = Real + "";
    part = part.trim();
    int newLength = part.length();
    System.out.println("new length : " + newLength);

這也打印5。

顯然,我想要打印我有多少位數,在這種情況下它應該顯示3。

如果它有助於我將數字輸入分解成組成部分,並確保它們都不超過限制,那么為了更大的圖片。 ie:xx.yyezz其中xx可以是5位數,yy可以是5位數,zz可以是2位數。 謝謝。

那是因為你正在使用雙倍。

String.valueOf(Real); // returns 666.0, i.e. length 5

首先嘗試將其轉換為整數:

Integer simple = (int) Real;
String.valueOf(simple); // returns 666, i.e. length 3.

雙精度數總是在數字后面加一個小數位。 所以數字看起來像666.0。 你可以通過打印String.valueOf(Real)來看到這一點。 您應該使用int代替或將double轉換為int:

double Real = 666;
int realInt = (int) Real;
System.out.println(String.valueOf(realInt).length());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM