long类型除以long类型的是四舍五入?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了long类型除以long类型的是四舍五入?相关的知识,希望对你有一定的参考价值。

我看的是《c语言入门经典》,发现那书说是四舍五入。
于是我用这个来验证,
#include <stdio.h>
int main (void)

long A = 809L;
long B = 90L;
long C = 811L;
printf ("米:%ld, 分米:%ld.",A/B,A%B);
printf ("米:%ld, 分米:%ld.",C/B,C%B);
return 0;

还有:
#include <stdio.h>
int main (void)

long A = 809L;
long C = 811L;
printf ("米:%ld, 分米:%ld.",A/90,A%90);
printf ("米:%ld, 分米:%ld.",C/90,C%90);
return 0;

结果都输出:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>C:\lcc\projects\lcc\long.exe
米:8, 分米:89.米:9, 分米:1.
C:\Documents and Settings\Administrator>C:\lcc\projects\lcc\long.exe
米:8, 分米:89.米:9, 分米:1.
C:\Documents and Settings\Administrator>

那书说的四舍五入在哪里体现了啊??

不是四舍五入,只是忽略小数点后的数。
int a,b,c;
c=(int)(a/b+0.5);//这样才是四舍五入。

还有,注意常量不要写成809L这种形式(809就可以了),不是所有的编译器都支持的。
参考技术A 四舍五入你就在最后加0.5.那样就行。 参考技术B 不会四舍五入 比如 2除3 也会是0。

以上是关于long类型除以long类型的是四舍五入?的主要内容,如果未能解决你的问题,请参考以下文章

java中将一个double类型的数强制转换为long 型是四舍五入吗?

java中将一个double类型的数强制转换为long 型是四舍五入吗?

long类型截取后几位

前端解析17位Long类型数据,精度丢失导致id不同

java两个数相除后保留两位小数 (四舍五入),并且结果大于三位数要有千位分隔符,不是整数时,小数点前三

ajax获取java后台的返回值,long的值为啥会四舍五入解决办法