[quote=引用 4 楼 weixin_45024354 的回复:] [quote=引用 3 楼 android2008的回复:]pow接受的参数和返回的值是double类型的,int类型和double类型互转会有精度问题,那些99999999就是因为这个原因,要避免这个问题,可以把pow的返回值加一个小的小数,比如 0.000001再转成整数 a=pow(10,i) + 0.000001 另外楼上说的,int表示的数是有限的,表示不了10的10次方,所以后面出来的是负数 你需要改成long long或64位int类型,相应的printf里也需要把%d改成对应的格式
[quote=引用 3 楼 android2008的回复:]pow接受的参数和返回的值是double类型的,int类型和double类型互转会有精度问题,那些99999999就是因为这个原因,要避免这个问题,可以把pow的返回值加一个小的小数,比如 0.000001再转成整数 a=pow(10,i) + 0.000001 另外楼上说的,int表示的数是有限的,表示不了10的10次方,所以后面出来的是负数 你需要改成long long或64位int类型,相应的printf里也需要把%d改成对应的格式
pow接受的参数和返回的值是double类型的,int类型和double类型互转会有精度问题,那些99999999就是因为这个原因,要避免这个问题,可以把pow的返回值加一个小的小数,比如 0.000001再转成整数 a=pow(10,i) + 0.000001 另外楼上说的,int表示的数是有限的,表示不了10的10次方,所以后面出来的是负数 你需要改成long long或64位int类型,相应的printf里也需要把%d改成对应的格式
3,881
社区成员
9,054
社区内容
加载中
试试用AI创作助手写篇文章吧