簡體   English   中英

在使用 ceil 的 C++ 中,除法不起作用?

[英]In c++ using the ceil a division is not working?

好吧,我試過了,它不適用於 C++ 中的 ceil

int n, m, a;
double r1, r2;
cin >> n;
cin >> m;
cin >> a;
r1 = (n/a);
r2 = (m/a);
cout << (ceil(r1)*ceil(r2));

在 n = 3 和 a =2 的情況下, n/a 操作應返回一個雙精度值,但它不會

還..

m/a 操作應在 m = 3 和 a =2 的情況下返回一個雙精度值,但它不會

這是問題所在, n/am/a將計算為整數,因為 n,m,a 是整數並且整數將被存儲到 double 中,為了避免這種情況,您可以像這樣鍵入 cast

r1=(double)n/a;
r2=(double)n/a;

或者簡單地將 a 的數據類型從 int 更改為 double,也許(它會幫助你#A. Theatre Square)

由於nma都是int類型,因此n/am/a也將是整數,這意味着 3/2 將等於 1。將nm更改為double類型應該可以解決該問題。

暫無
暫無

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

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