C 除法的細節

2022-02-26 13:42:30 字數 790 閱讀 2647

最近在做專案時有個地方用到了概率,要計算概率自然會用到除法。我這邊概率的演算法是這樣的,從0到10000獲取個隨機數,隨機值除以10000就是概率了,但是一時大意沒注意細節,結果直接除了,如下:

random rdo 

=new

random();

intintnum

=rdo.next(0,

10000

);float

result

=intnum

/10000

;

random rdo 

=new

random();

float

intnum =(

float

)rdo.next(0,

10000

);float

result

=intnum

/10000

;

ok,如願以償,得到了我想要的答案,比如intnum是845,那麼得到的結果是0.0845.c#中解決了這個問題,於是我想到了sqlserver中會不會也有這種情況,於是我試了試,如下:

select

845/

10000

查詢結果等於0,看來sql和c#是一樣的,於是我也換了種寫法,如下:

select

convert

(float

,845)/

10000

查詢結果等於0.0845,正確。 

C 大數除法

提供一種有關 c 大數除法的思路。用二分的方式,尋找答案。用 mid 被除數,若大於除數,則縮小右端點,若小於除數,則縮小左端點。最後可以得到 答案。本人採取這個方法,得到的數字比答案大一,所以要減去一 最後要注意的是,mid 被除數 有越界的可能。我設定了,如果越界,則返回0,然後在 二分的迴圈 ...

大數除法(C )

大數除法 不同於一般的模擬,除法操作步數模仿手工除法,而是利用減法操作實現的。其基本思想是反覆做除法,看從被除數裡面最多能減去多少個除數,商就是多少。逐個減顯然太慢,要判斷一次最多能減少多少個整的10的n次方。以7546除23為例。先減去23的100倍,就是2300,可以減3次,餘下646。此時商就...

C語言中的除法

在c中,除法是有一些特殊的。如果是兩個整數型的變數相除,如10 3,其結果是3,而不是3.3333333 又如10 4,其在c中的結果是2,而不是2.5。也就是說,整數型變數相除,如果其結果從數學角度上看是小數,無論是否可以四捨五入進製,c都會講小數點後的部分拋棄。只有將初始化變數為浮點數型別,其在...