这甚至可能吗?我试图谷歌它,但我似乎无法找到正确的答案。
我需要限制小数位,因为如果只有5位小数,那么答案真的会有所不同,所以我希望你可以帮我解决这些问题。我知道如何打印3个小数位但是声明一个变量只能容纳3个小数位是我不知道的。如果你有任何链接我也可以使用。
float sinfa(float num1)
{
float fc;
float powers;
float rad_angle;
rad_angle = num1 * (PI / 180.0);
powers = pow(num1,4);
fc = sin(rad_angle)-powers+1;
return (fc);
}
float sinfb(float num2)
{
float fd;
float powerss;
float rad_angle1;
rad_angle1 = num2 * (PI / 180.0);
powerss = pow(num2,4);
fd = sin(rad_angle1)-powerss+1;
return (fd);
}
float tp(float fa,float fb,float num1,float num2)
{
float p;
float fm2 = fa*num2;
float fm1 = fb*num1;
p = (fm2-fm1)/(fa-fb);
return (p);
}
float sinp(float p1)
{
float fop;
float ppowers;
float rad_angle2;
rad_angle2 = p1 * (PI / 180.0);
ppowers = pow(p1,4);
fop = sin(rad_angle2)-ppowers+1;
return (fop);
}
谢谢
答案 0 :(得分:2)
无法完成。 float
是我曾经使用的每个C编译器中的32位浮点值。语言中没有任何标准可以重新定义它的工作原理。
你可以编写一组定义函数,用于存储乘以1000的值,或者使用以任意精度实现定点的通用库,并将精度设置为3位十进制数。 / p>
答案 1 :(得分:2)
可以做到!
int intVal = 1.234567 * 1000; // result: 1234
float floatVal = (float)intVal / 1000; // result: 1.234
诀窍是: