有点奇怪,C语言精度问题(跟JAVA区别)。

图片说明

这段代码转成C语言行不通。。在C语言我试了缩小x的范围,整体都缩小了才能运行出正确答案。。

C语言跟JAVA还存在这方面的区别??

c语言精度有限的,整数最高精度就是long long,占用8个字节,最大范围是-2^63 ~ 2^63 - 1,java中有现成的类BigInteger和BigDecimal,原则上是只要你的内存足够大,就能表示任意精度的数字

我在做排序算法的代码模拟的时候也发现了这个问题,c语言对数据量较大时的情形处理的不如Java。

int类型在C语言、java语言中能够表示的数的范围是不一样的,而且和机器有关(32位、64位)。