How can I divide two integers to get a double?

后端 未结 5 931
谎友^
谎友^ 2020-11-22 08:39

How do I divide two integers to get a double?

相关标签:
5条回答
  • 2020-11-22 09:08

    Complementing the @NoahD's answer

    To have a greater precision you can cast to decimal:

    (decimal)100/863
    //0.1158748551564310544611819235
    

    Or:

    Decimal.Divide(100, 863)
    //0.1158748551564310544611819235
    

    Double are represented allocating 64 bits while decimal uses 128

    (double)100/863
    //0.11587485515643106
    

    In depth explanation of "precision"

    For more details about the floating point representation in binary and its precision take a look at this article from Jon Skeet where he talks about floats and doubles and this one where he talks about decimals.

    0 讨论(0)
  • 2020-11-22 09:09

    You want to cast the numbers:

    double num3 = (double)num1/(double)num2;
    

    Note: If any of the arguments in C# is a double, a double divide is used which results in a double. So, the following would work too:

    double num3 = (double)num1/num2;
    

    For more information see:

    Dot Net Perls

    0 讨论(0)
  • 2020-11-22 09:16

    Convert one of them to a double first. This form works in many languages:

     real_result = (int_numerator + 0.0) / int_denominator
    
    0 讨论(0)
  • 2020-11-22 09:25
    var firstNumber=5000,
    secondeNumber=37;
    
    var decimalResult = decimal.Divide(firstNumber,secondeNumber);
    
    Console.WriteLine(decimalResult );
    
    0 讨论(0)
  • 2020-11-22 09:33

    cast the integers to doubles.

    0 讨论(0)
提交回复
热议问题