有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Java/javascript的十进制值数学余数商程序

大家好,我正在尝试使用Javascript/Java编写一个程序,以获得商(带十进制值)和余数,如下面的附件所示。我使用了常规的余数运算符(%),但没有得到如下所示的实际余数。有人能帮我实现这个吗。 enter image description here

非零余数:

enter image description here

我在Javascript中写道:

<script>
 var a = 17.0;
 var b = 5;
 var x = a % b;
</script>

我在Java写的时候

import java.math.*;
public class CalculateRemainder {
public static void main(String[] args) {
  float divider, remainder;
  int dividend;

  divider = 17.0f;
  dividend = 5;

  remainder = divider%(dividend);

  String str = "The remainder is " + remainder;
  System.out.println( str);
  }
 }

我得到的余数是“2.0”,而不是“0”(如图所示)。JavaScript也是如此


共 (1) 个答案

  1. # 1 楼答案

    如果希望在一定精度后获得余数,请使用以下方法:

    function remainder(dividend, divisor, precision = 4) {
      var result = (dividend / divisor).toString();
      var dot = result.indexOf('.');
      if(dot == -1) return 0; // it was a perfect division (9 / 3 for example)
      
      var remainder = "0." + result.substr(dot + precision);  // get the part after the precision
      return Math.round(remainder * divisor);                 // multiply it by the divisor and round the result
    }
    
    console.log(remainder(9.1, 3, 3));

    注意:不同精度的结果可能不同