LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1281|回复: 8

怎样计算小数点后的位数?

[复制链接]
发表于 2006-4-21 11:17:02 | 显示全部楼层 |阅读模式
float i=0.923402
怎样计算小数点后有几位有效数? 谢谢
发表于 2006-4-21 13:59:02 | 显示全部楼层
转换成字符串  然后自己数有几位
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-21 19:24:36 | 显示全部楼层

哥们 我是问怎样让程序计算。

你太搞笑了吧
回复 支持 反对

使用道具 举报

发表于 2006-4-21 22:28:02 | 显示全部楼层
你才搞笑呢,呵呵,自己数还用转字符串么
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-21 22:42:55 | 显示全部楼层
可能我没有把问题说清楚, 首先小数点后的有效位是不固定的。 我希望能计算处有效位的个数。
回复 支持 反对

使用道具 举报

发表于 2006-4-21 23:11:16 | 显示全部楼层
这是不太可能的, 因为小数的表示是不精确的
回复 支持 反对

使用道具 举报

发表于 2006-4-21 23:45:35 | 显示全部楼层
楼主是不是没有学过C语言?
回复 支持 反对

使用道具 举报

发表于 2006-4-22 03:31:08 | 显示全部楼层
Post by Joey_Cheng
你太搞笑了吧

人呐  得有点幽默感才行

  1. int precise(float f)
  2. {
  3.     char buf[20];
  4.     int dot;
  5.     int i;

  6.     sprintf(buf, "%f", f);

  7.     i = strlen(buf) - 1;
  8.     while(buf[i] == '0')
  9.     {
  10.         i--;
  11.     }

  12.     dot = 0;
  13.     while(buf[dot] != '.')
  14.     {
  15.         dot++;
  16.     }

  17.     return ((i - dot) > 0)?(i - dot):0;
  18. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-4-22 07:34:26 | 显示全部楼层
想要控制浮点数精度麽,用这个
http://www.mpfr.org
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表