簡體   English   中英

用C#划分數學

[英]Dividing Math with C#

這有一個可能很簡單的答案,但我無法弄清楚 -

double Result = 1 / 12;

返回0,而

double Result2 = 24 / 12;

返回2

發生了什么,我該如何解決?

嘗試這個:

double Result = 1 / (double)12;

或這個:

double Result = 1 / 12D;

在C#(以及許多其他語言)中,整數除法返回一個整數。 通過將其中一個操作數強制轉換為double或顯式聲明文字double ,可以強制除法表達式返回一個double精度數而不是在小數位后截斷。

它正在進行整數數學,因為右邊的數字被計算為整數。

試試1.0/12 ;

我認為你需要投射你的價值觀

double Result = (double)1 / (double)12

與基於整數的數學有關,總是返回一個整數.....

這也會奏效

Decimal.Divide(1, 12)

它具有更高精度的結果,但范圍更小。

問題是112是整數( int類型,而不是double )。 這意味着值忽略小數點以外的任何值。 當你將1除以12時,得到0.083。 由於小數點后面的任何內容都被截斷為int ,因此保留為0

要獲得預期的結果,您的一個操作數必須是double類型。 您可以通過將1更改為1.0或12更改為12.0 (或兩者,只要至少有一個操作數是double精度數)。

暫無
暫無

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

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