我想将任何双数舍入为一位小数点和一位小数的格式,所以29575.347434就是2.3。将double转换为double,并带有一个小数点和一个小数位?
尝试使用decimalFormat来做这件事,但是当我尝试#。#我刚刚得到一个格式为29575.3的字符串,并且我不知道如何在保留我的值的同时切断所有小数点。
我想将任何双数舍入为一位小数点和一位小数的格式,所以29575.347434就是2.3。将double转换为double,并带有一个小数点和一个小数位?
尝试使用decimalFormat来做这件事,但是当我尝试#。#我刚刚得到一个格式为29575.3的字符串,并且我不知道如何在保留我的值的同时切断所有小数点。
您可以得到的号码为String
,取第一位数字和'.'
后面的数字。对于非负数将是
String s = Double.toString(29575.347434);
double d = Double.parseDouble(s.charAt(0) + "." + s.charAt(s.indexOf('.') + 1));
System.out.println(d); // 2.3
如果该数字可能是负数,则必须更正可能的减号代码。
您可以通过使用模运算符%来完成此操作。
它看起来像你的十进制格式正在与#。#。这会给你整数和一个小数位。然后你可以做你的数字29575.3%10并得到5.3。
试试这个代码,看看:
System.out.println(29575.3d % 10);
尝试以下操作:
Number(parseFloat(29575.347434).toFixed(1))
你也可以通过一个串,因为parseFloat()
将其转换为数,然后trunkate到希望十进制(输出是字符串再次),然后转换回到十进制按功能。
适合我。
你可能不得不把它看作一个字符串 - 29575.347434不会以任何标准的数学方式舍入到2.3 ......至于保持它的两倍,只是将它解析回来。 – BlakeP
所以你想得到最左边的整数数字,然后是小数点,然后是最左边的小数? – Cinnam
@Cinnam是的,完全如此 – snyappy