[英]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/a
和m/a
將計算為整數,因為 n,m,a 是整數並且整數將被存儲到 double 中,為了避免這種情況,您可以像這樣鍵入 cast
r1=(double)n/a;
r2=(double)n/a;
或者簡單地將 a 的數據類型從 int 更改為 double,也許(它會幫助你#A. Theatre Square)
由於n
、 m
和a
都是int
類型,因此n/a
和m/a
也將是整數,這意味着 3/2 將等於 1。將n
和m
更改為double
類型應該可以解決該問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.