草庐IT

java - 在 BigDecimal 中修剪两个以上的尾随零

什么是为BigDecimal修剪两个以上尾随零的好方法所以1.2200会打印1.22而1.0000会打印1.00编辑以及返回1.222200作为1.2222和1.220000001为1.220000001等。所以忽略前两个零我想修剪任何传入的0而不是修剪非零值一种方法可能是相乘,然后应用内置修剪尾随零,然后除以100。极端情况可能会有问题,但我的问题中的值是基于货币的,并且永远不会超过Java设置的界限(否则这意味着我的软件正在处理以巨额美元计的出价)丑陋的解决方案如下System.out.println(((newBigDecimal("1.230223000").multiply(

java - 如何正确显示最多两位小数(美分)的价格,包括 Java 中的尾随零?

Java中有一个关于四舍五入小数的好问题here.但我想知道如何在我的程序中包含尾随零以显示价格,例如:$1.50、$1.00简单的解决方案String.format("%.2g%n",0.912385);工作正常,但如果它位于最后一位小数,则省略尾随零。即使我只使用这样的表达式,我的程序也会出现这个问题:doubleprice=1.50;当我对不同的价格进行计算(相加、相乘等)时,结果主要显示如下:$2.5000000000000003因此,使用String.format可以很好地实现此目的,但它将上面的示例截断为$2.5有没有正确的方法来显示小数点后第二位的尾随零?或者如果计算的输

java - 将整个单词与前导或尾随特殊符号(如字符串中的美元)匹配

我可以使用Matcher.quoteReplacement来替换美元符号。我可以通过添加边界字符来替换单词:from="\\b"+from+"\\b";outString=line.replaceAll(from,to);但我似乎无法将它们组合起来用美元符号替换单词。这是一个例子。我正在尝试用“register1”替换“$temp4”(不是$temp40)。Stringline="add,$temp4,$temp40,42";Stringto="register1";Stringfrom="$temp4";StringoutString;from=Matcher.quoteReplac

java - 使用空字符串作为分隔符拆分字符串会产生前导空字符串但不会产生尾随空字符串

这个问题在这里已经有了答案:JavaStringsplitremovedemptyvalues(5个答案)关闭5年前。假设您在Java中有这个表达式:"adam".split("")这是告诉Java使用空字符串("")作为分隔符来拆分"adam"。这产生:["","a","d","a","m"]为什么Java在开头包含一个空字符串,但在末尾不包含?使用这个逻辑,结果不应该是:["","a","d","a","m",""]

java - 计算由阶乘产生的数字的尾随零

我正在尝试计算由阶乘产生的数字的尾随零(意味着数字变得非常大)。以下代码接受一个数字,计算该数字的阶乘,并计算尾随零。但是,当数字大约与25!一样大时,numZeros不起作用。publicstaticvoidmain(String[]args){BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));doublefact;intanswer;try{intnumber=Integer.parseInt(br.readLine());fact=factorial(number);answer=numZero

java - 如何制作接受尾随垃圾的 DateTimeFormatter?

我正在改造一些旧的SimpleDateFormat代码以使用新的Java8DateTimeFormatter。SimpleDateFormat,因此旧代码接受日期之后的字符串,例如“20130311nonsense”。我创建的DateTimeFormat为这些字符串抛出DateTimeParseException,这可能是正确的做法,但我想保持兼容性。我可以修改我的DateTimeFormat以接受这些字符串吗?我目前正在这样创建它:DateTimeFormatter.ofPattern("yyyyMMdd") 最佳答案 使用par

java - Eclipse Checkstyle 禁用 "Lline has trailing spaces"

我在Win7上使用eclipse。我也在使用checkstyle,发现checkstyle提示注释中的尾随空格。我希望在checkstyle中禁用此检查,而不对我的环境进行任何修改,因为我希望与办公室中的其他开发人员共享检查样式文件,以确保每个人都可以在相同的checkstyle“light”中看到代码:)我同意可以解决此问题的其他内置功能。我试过:Ctrl+Shift+F和Ctrl+Alt+C。两者都不会自动修复尾随空格。 最佳答案 在checkstyle中找到禁用方法:首选项->CheckStyle->Regexp->Regex

Java - 从字节数组中修剪尾随空格

我有类似这样的字节数组:[77,83,65,80,79,67,32,32,32,32,32,32,32]大致等于[M,S,A,P,O,C,,,,,,,]whenprintedaschars.现在我想修剪尾随的空格,使其看起来像:[77,83,65,80,79,67]最简单的方法是什么?编辑:我不想处理字符串,因为存在不可打印字节的可能性,而且我不能承受丢失该数据的后果。它需要是字节数组:(每当我转换为字符串时,01(SOH)02(STX)等字节都会丢失。编辑2:只是为了澄清。如果我将字节数组转换为字符串,我会丢失数据吗?现在有点迷糊了。如果字节是不同的字符集怎么办?

java - 从 double 中删除尾随零

如果数字没有,我想删除所有尾随零而不截断或四舍五入。例如,数字可能类似于12.0,在这种情况下,应删除尾随零。但这个数字也可能是几乎不合理的东西,比如12.9845927346958762...一直在屏幕边缘。有没有一种方法可以设置DecimalFormat或其他一些类来削减尾随零,同时保持不合理性不变? 最佳答案 如果您愿意切换到BigDecimal,则有一个#stripTrailingZeroes()实现此目的的方法。 关于java-从double中删除尾随零,我们在StackOve

java - 修剪 OpenCSV 中的前导和尾随空格

我正在使用OpenCSV的CSVReader从文件中读取一些逗号分隔值。我不确定如何修剪前导和尾随空格。当然,我可以执行String.trim()但最好不要这样做。在documentation没有指定这样的选项。 最佳答案 如果您正在使用bean映射和OpenCSV,我个人更喜欢扩展MappingStrategy,因为它处理对其相关字段的最终值分配。想象一下您的字段是制表符分隔的。那么您可能很难扩展CSVReader。此外,需要的编码更少。在下面的示例中,我使用的是ColumnPositionMappingStrategy,但您可以