为什么 C 语言 sqrt 函数参数不支持 int?
的有关信息介绍如下:
sqrt属于math库,math的接口在实际中十有八九是做科学计算的,再说大多数整数不是完全平方数,开方结果也带着小数的
如果一定要实现整数的开方,比如判断一个数字是不是完全平方数,可以先转浮点数做sqrt,然后对结果转整数后在附近几个数字做平方和输入对比即可
不过对于其他答案提到的int可以被double精确表示的说法,多嘴说两句:
1 int不一定只有32bit(ILP64模型)
2 就算无损转double,在sqrt运算过程中也是有可能损失精度的
所以,还是不能太信任浮点运算的结果。。



