繁体   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