Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将双人间四舍五入到最接近的百分之一_Java_Variables_Decimal_Rounding - Fatal编程技术网

Java 如何将双人间四舍五入到最接近的百分之一

Java 如何将双人间四舍五入到最接近的百分之一,java,variables,decimal,rounding,Java,Variables,Decimal,Rounding,我试图编写一个程序,在初始double乘以0.175后,它返回一个舍入到最接近百分之一的值,例如895*0.175=156.62,而不是156.625。您可以首先将double变量转换为2进制字符串表示,然后将字符串解析回double DecimalFormat df = new DecimalFormat("#.##"); df.setRoundingMode(RoundingMode.CEILING); //Set to RoundingMode.DOWN to round down Str

我试图编写一个程序,在初始double乘以0.175后,它返回一个舍入到最接近百分之一的值,例如895*0.175=156.62,而不是156.625。

您可以首先将double变量转换为2进制字符串表示,然后将字符串解析回double

DecimalFormat df = new DecimalFormat("#.##");
df.setRoundingMode(RoundingMode.CEILING); //Set to RoundingMode.DOWN to round down
String result = df.format(895 * 0.175);
double product = Double.parseDouble(result);
System.out.println(product);
floor向下舍入到最接近的整数。因此:

数学地板100*n/100.0;
你应该做你想做的。它将数字n乘以100以截断正确的数字,然后除以100.0以撤消原始乘法。这可能不是最好的方法,但floor和乘除运算速度非常快。

用哪种语言?我用的是Java,你搜索过吗?是的,但是我只能找到舍入方法,它将值舍入到最接近的整数