C/C++在计算浮点数时都默认按double型,对floa而言,只是在输出、输入时由double截断形成。你的代码中ceil(a*r)由于最高类型级别是float型,所以是把a*r的积按float处理了,精度要比double差了许多。而ceil(5*0.4)是按默认的double型来处理积的,精度就高多了。它们看起来都是0.2,但ceil函数要求一个double型参数,传给它float型类型不匹配,出错有时很难准确分析。若把r的类型由float改为double,相信输出应该是一样的。
C语言中sqrt()意思是平方根函数,计算一个非负实数的平方根。 在VC6.0中的math.h头文件的函数原型为double sqrt(double number)。sqrt()函数的输入参数不允许为负数,若输入赋值作为函数入参,将得不到正确的结果。因此在调用函数之前,应检查函数输入参数。
扩展资料:
sqrt()函数的输入参数必须以double类型输入,函数返回类型为double型,因此必须使用double型的变量来进行接收返回的数值。当输入数据不是double型时,应使用强制类型转换,将其转换为double类型。
在函数接收引用的数值时,应该用 %lf 来表示,否则,将会在输入或输出时出现数据错误,尤其是在数据输入的时候,会直接导致数据出错。这也都主要是由于不同类型的数据存储和读取的方式不同导致的。
(1)没有 °符号的都是弧度制,换句话说,角度制一定有 °
(2)在高中数学中,若没有特殊说明,都习惯用弧度制表示,弧度和角度的转换式为
角度=(180°/π)*弧度
c语言源代码如下:
#include <stdio.h>#include <stdlib.h>
int main(int argc, char*argv[])
{
const double pi=3.14159
int jd //角度值
double hd //弧度值
printf("请输入角度值:\n")
scanf("%d",&jd)
hd=jd*pi/180
printf("对应的弧度值:%g\n",hd)
system("pause")
return 0
}