草庐IT

小数点

全部标签

java - 如何使用 Jackson 的本地化小数点分隔符反序列化浮点值

我正在用Jackson解析的输入流包含纬度和经度值,例如此处:{"name":"product23","latitude":"52,48264","longitude":"13,31822"}出于某种原因,服务器使用逗号作为产生InvalidFormatException的小数点分隔符。由于我无法更改服务器输出格式,因此我想教Jackson的ObjectMapper来处理这些情况。相关代码如下:publicstaticObjectgetProducts(finalStringinputStream){ObjectMapperobjectMapper=newObjectMapper();

java - 只让用户输入正整数(不能输入小数或字符串)?

我知道如何要求用户输入正整数,但我不知道如何处理代码以避免输入错误,例如小数或字符串输入。intseedValue;doubleangle,gunpowder;System.out.println("Pleaseenterapositiveintegerseedvalue:");seedValue=input.nextInt();while(seedValue 最佳答案 这可能是一个方法:使用Scanner.readLine();将输入读取为string值尝试使用Integer.parseInt方法将字符串转换为int。如果输入字符

java - 四舍五入到小数点后两位

(Math.round(doubleValue*100))/100.0有没有更好的方法将小数舍入到小数点后两位? 最佳答案 如果您对小数位感兴趣并因此对精确的小数值感兴趣,您通常应该使用java.math.BigDecimal开始。然后,您可以使用Decimal.round或Decimal.setScale根据您的具体需要进行舍入。 关于java-四舍五入到小数点后两位,我们在StackOverflow上找到一个类似的问题: https://stackover

java - 从Java中的Bigdecimal中提取整数和小数部分

我想从java中的bigdecimal中提取整数部分和小数部分。我为此使用了以下代码。BigDecimalbd=BigDecimal.valueOf(-1.30)StringtextBD=bd.toPlainString();System.out.println("length="+textBD.length());intradixLoc=textBD.indexOf('.');System.out.println("Fraction"+textBD.substring(0,radixLoc)+"Cents:"+textBD.substring(radixLoc+1,textBD.le

java - 将小数点 1 到 10 替换为名称 ("one", "two"..)

我试图获取一个字符串,然后返回一个字符串,其中数字1到10替换为这些数字的单词。例如:Iwon7ofthe10gamesandreceived30dollars.应该变成:Iwonsevenofthetengamesandreceived30dollars.所以我这样做了:importorg.apache.commons.lang3.StringUtils;String[]numbers=newString[]{"1","2","3","4","5","6","7","8","9","10"};String[]words=newString[]{"one","two","three",

java - 四舍五入小数点

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Roundadoubleto2significantfiguresafterdecimalpoint我正在尝试将十进制度数(23.1248)转换为分钟式度数(237'29.3")。这是我到目前为止所拥有的:doublea=23.1248;intdeg=(int)a;//givesmethedegreefloatb=(float)(a-deg);intmin=(int)(b*60);//givesmetheminutesdoublesec=(double)((c*60)-min);//givesmemyseco

java - 小数点前 6 位和小数点后 2 位的正则表达式

我需要一个正则表达式,其中小数点是可选的。如果有小数点,则小数点前最多6位数字,小数点后最多2位数字。如果没有小数点,则最多6位数字是有效的。正则表达式测试:^\d{0,6}\.?\d{1,2}$上面的正则表达式最多允许8位数字,不带小数点。我如何根据自己的需要进行更改,以便如果没有小数点则最多需要6位数字?有效案例123456.122123112345615465.4323.346.45.12无效案例12345678123456.331 最佳答案 ^\d{0,6}(\.\d{1,2})?$试试这个。查看演示。https://reg

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

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

java - Horner 的小数部分递归算法 - Java

我正在尝试创建一种递归方法,该方法使用Horner算法将以n为底的小数转换为以10为底的小数。我在这里和所有地方都进行了搜索,但找不到任何地方详细处理小数部分。提醒一下,我在递归方面很弱,因为我还没有在我的编程课上正式学习它,但已经被另一个类(class)分配了。我能够创建一个方法来处理数字的整数部分,而不是小数部分。我觉得我写的方法相当接近,因为它让我的测试数字的答案加倍(可能是因为我正在测试基数2)。传递的第一个参数是一个填充有系数的int数组。我不太关心系数的顺序,因为我正在使所有系数相同以对其进行测试。第二个参数是基础。第三个参数初始化为系数数减1,我也将其用于整数部分方法。我

Java - 格式化数字以仅打印小数部分

Java中是否有一种简单的方法来格式化小数、float、double等以仅打印数字的小数部分?我不需要整数部分,即使/特别是如果它为零!我目前正在使用String.indexOf(".")方法结合String.substring()方法来提取小数点右侧的数字部分。有没有更清洁的方法来做到这一点?在DecimalFormat类或printf方法中找不到任何内容。两者总是在小数点前返回零。 最佳答案 您可以通过将double转换为long来删除值的整数部分。然后,您可以从原始值中减去它,只剩下分数值:doubleval=3.5;long