簡體   English   中英

如何將兩個整數相除以獲得雙精度?

[英]How can I divide two integers to get a double?

如何將兩個整數相除以獲得雙精度數?

您要轉換數字:

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

注意:如果 C# 中的任何 arguments 是double ,則使用double除法會導致double 因此,以下內容也可以使用:

double num3 = (double)num1/num2;

有關更多信息,請參閱:

點網 Perls

補充@NoahD 的答案

要獲得更高的精度,您可以轉換為十進制:

(decimal)100/863
//0.1158748551564310544611819235

或者:

Decimal.Divide(100, 863)
//0.1158748551564310544611819235

雙精度表示分配 64 位,而十進制使用 128

(double)100/863
//0.11587485515643106

深入解讀“精准”

有關二進制浮點表示及其精度的更多詳細信息,請查看 Jon Skeet 的這篇文章其中他談到了floatsdoubles精度數,這篇文章談到了decimals

將整數轉換為雙精度數。

首先將其中一個轉換為雙精度。 此表格適用於多種語言:

 real_result = (int_numerator + 0.0) / int_denominator
var firstNumber=5000,
secondeNumber=37;

var decimalResult = decimal.Divide(firstNumber,secondeNumber);

Console.WriteLine(decimalResult );
var result = decimal.ToDouble(decimal.Divide(5, 2));

我已經完成了大多數答案,並且我很確定這是無法實現的。 無論您嘗試將兩個 int 划分為 double 還是 float 都不會發生。 但是您有很多方法可以進行計算,只需將它們轉換為 float 或 double ,然后計算就可以了。

最簡單的方法是在 integer 中添加小數位。

前任。:

var v1 = 1 / 30 //the result is 0
var v2 = 1.00 / 30.00 //the result is 0.033333333333333333

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM