第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

為什么C#中的整數(shù)除法返回整數(shù)而不是浮點(diǎn)數(shù)?

為什么C#中的整數(shù)除法返回整數(shù)而不是浮點(diǎn)數(shù)?

拉丁的傳說 2019-05-30 16:11:42
為什么C#中的整數(shù)除法返回整數(shù)而不是浮點(diǎn)數(shù)?有人知道為什么C#中的整數(shù)除法返回整數(shù)而不是浮點(diǎn)數(shù)嗎?背后的想法是什么?(這僅僅是C/C+遺留下來的嗎?)在C#中:float x = 13 / 4;   //imagine I used have an overridden == operator here to use epsilon compareif (x == 3.0)    print 'Hello world';這一守則的結(jié)果是:'Hello world'嚴(yán)格地說,不存在整數(shù)除法(按定義除法是產(chǎn)生有理數(shù)的運(yùn)算,整數(shù)是其中的一個(gè)很小的子集)。
查看完整描述

4 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

雖然新程序員在實(shí)際使用浮點(diǎn)除法時(shí)會犯執(zhí)行整數(shù)除法的錯(cuò)誤,但在實(shí)際操作中,整數(shù)除法是一種非常常見的操作。如果你假設(shè)人們很少使用它,而且每次你進(jìn)行除法時(shí),你總是需要記住把它轉(zhuǎn)換成浮點(diǎn)數(shù),那么你就錯(cuò)了。

首先,整數(shù)除法要快得多,所以如果你只需要一個(gè)整數(shù)的結(jié)果,你就會想要使用更高效的算法。

其次,有許多算法使用整數(shù)除法,如果除法的結(jié)果總是浮點(diǎn)數(shù),那么每次都會被迫舍入結(jié)果。我頭頂上的一個(gè)例子就是改變了一個(gè)數(shù)字的基數(shù)。計(jì)算每一位數(shù)涉及一個(gè)數(shù)字與剩余數(shù)的整數(shù)除法,而不是數(shù)字的浮點(diǎn)數(shù)除法。

由于這些(和其他相關(guān)的)原因,整數(shù)除法導(dǎo)致整數(shù)。如果要獲得兩個(gè)整數(shù)的浮點(diǎn)除法,只需記住將一個(gè)轉(zhuǎn)換為double/float/decimal.


查看完整回答
反對 回復(fù) 2019-05-30
?
阿波羅的戰(zhàn)車

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

見C#規(guī)格。有三種類型的除法操作符。

  • 整數(shù)除法
  • 浮點(diǎn)除法
  • 十進(jìn)制除法

在您的情況下,我們有Integer部門,適用以下規(guī)則:

除法將結(jié)果舍入為零,結(jié)果的絕對值是最大可能的整數(shù),小于兩個(gè)操作數(shù)商的絕對值。當(dāng)兩個(gè)操作數(shù)有相同的符號時(shí),結(jié)果為零或正;當(dāng)兩個(gè)操作數(shù)有相反的符號時(shí),結(jié)果為零或負(fù)。

我認(rèn)為C#對整數(shù)使用這種類型的除法(某些語言返回浮動(dòng)結(jié)果)的原因是硬件-整數(shù)除法更快更簡單。


查看完整回答
反對 回復(fù) 2019-05-30
?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

每個(gè)數(shù)據(jù)類型都能夠重載每個(gè)操作符。如果分子和分母都是整數(shù),則整數(shù)類型將執(zhí)行除法操作,并返回整數(shù)類型。如果要進(jìn)行浮點(diǎn)除法,則必須先將一個(gè)或多個(gè)數(shù)字轉(zhuǎn)換為浮點(diǎn)數(shù)類型,然后再對其進(jìn)行分割。例如:

int x = 13;int y = 4;float x = (float)y / (float)z;

或者,如果您使用的是文字:

float x = 13f / 4f;

記住,浮點(diǎn)數(shù)是不精確的。如果您關(guān)心精度,請使用類似十進(jìn)制類型的內(nèi)容。


查看完整回答
反對 回復(fù) 2019-05-30
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

因?yàn)槟悴皇褂萌魏魏缶Y,所以文字134被解釋為整數(shù):

手冊:

如果文字沒有后綴,它的第一個(gè)類型可以表示其值:intuintlongulong.

因此,既然您聲明13作為整數(shù),整數(shù)除法將被執(zhí)行:

手冊:

對于表單x/y的操作,應(yīng)用二進(jìn)制操作符重載解析來選擇特定的運(yùn)算符實(shí)現(xiàn)。操作數(shù)轉(zhuǎn)換為所選運(yùn)算符的參數(shù)類型,結(jié)果的類型是運(yùn)算符的返回類型。

下面列出預(yù)定義的除法操作符。算子都計(jì)算x和y的商。

整數(shù)除法:

int operator /(int x, int y);uint operator /(uint x, uint y);long operator /(long x, long y);ulong operator /(ulong x, ulong y);

于是,四舍五入發(fā)生了:

除法將結(jié)果舍入為零,結(jié)果的絕對值是最大可能的整數(shù),小于兩個(gè)操作數(shù)商的絕對值。當(dāng)兩個(gè)操作數(shù)有相同的符號時(shí),結(jié)果為零或正;當(dāng)兩個(gè)操作數(shù)有相反的符號時(shí),結(jié)果為零或負(fù)。

如果您做了以下操作:

int x = 13f / 4f;

您將收到一個(gè)編譯器錯(cuò)誤,因?yàn)楦↑c(diǎn)除法(/運(yùn)算符13f)的結(jié)果,不能隱式轉(zhuǎn)換為int。

如果希望該除法是浮點(diǎn)除法,則必須使結(jié)果成為浮點(diǎn)數(shù):

float x = 13 / 4;

請注意,您仍將對整數(shù)進(jìn)行除法,這些整數(shù)將隱式轉(zhuǎn)換為浮點(diǎn)數(shù):結(jié)果將是3.0。若要將操作數(shù)顯式聲明為浮點(diǎn)數(shù),請使用f后綴(13f4f).


查看完整回答
反對 回復(fù) 2019-05-30
  • 4 回答
  • 0 關(guān)注
  • 3016 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號