c++怎样测小数点后有几位

来源:百度知道 编辑:UC知道 时间:2024/05/28 03:40:41
补充一下,我想解决的是怎样把一个小数化为分数的问题

浮点数没有小数位数的,这是C++的基本概念,因为浮点数没有等于的概念。
当然你转换成字串后用strlen来测也可以。
----------------------------------
既然是分数转换,就和小数位数没关系了,说一种CASIO计算器上疑似使用的算法。
比如你精确2位,就遍历乘2到100,然后取整,如果取整的结果与为取整的差小于很小的某个值,并且重新试除的结果与原值的差小于很小的某个值,就认为相等,然后认为这个结果就是化分数的记过。
当然利用二分、存取常见的结果可以加强结果。

就算你测出小数的在小数写法、在C++的有效位数内得到一个所谓位数值,比如有7位,但你仍然只能按照你事先确定的位数来测算(比如2位),否则会很不准。