为了账号安全,请及时绑定邮箱和手机立即绑定

浮点数的陷阱,为什么2.999999等于3?

浮点数的陷阱,为什么2.999999等于3?

C
慕粉4170453 2016-11-03 12:28:27
查看完整描述

2 回答

?
慕运维1139315

TA贡献84条经验 获得超21个赞

是因为 float 和 double 不能精确的表达 0.1 ,或者任何 10 的负 n 次方。他们是设计来进行科学和工程上的计算,提供精确的近似值的.如果想精确的话用BigDcimal

查看完整回答
反对 回复 2016-11-03
  • 慕粉4170453
    慕粉4170453
    #include <stdio.h> int main(void) { double a,b,c; while (1) { printf("Input the three edge lengtf:\n"); scanf("%lf%lf%lf",&a,&b,&c); if(a+b>c && a+c>b && b+c>a) { if(a==b || a==c || b==c) { printf("等腰三角形\n"); } else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a) { printf("直角三角形\n"); } else { printf("一般三角形\n"); } } else { printf("不是三角形\n"); } } } 为什么我这样打不行
  • 2 回答
  • 0 关注
  • 1438 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信