簡體   English   中英

在C中將整數除法轉換為雙精度

[英]casting integer division into double in C

為什么代碼

double slope = (double)changeY/changeZ 

將斜率設置為0.0,當我在程序中有changeX = 20和changeY = 10(均為整數)時?

聽起來您使用的是錯誤的變量。 嘗試這個:

int changeX = 20;
int changeY = 10;

double slope = (double)changeY/changeX;

強制轉換運算符()的優先級高於/。 該表達式將被評估為:

  • changeY轉換為double
  • changeX隱式轉換為double 如果一個操作數為double ,則另一個操作數也將平衡為double (這正式稱為“通常的算術轉換”)。
  • 將兩個操作數相除。 結果將是兩倍。
  • 將此臨時“結果雙精度”存儲到另一個稱為“斜率”的雙精度中。

暫無
暫無

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

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