中易网

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

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

就算你测出小数的在小数写法、在C++的有效位数内得到一个所谓位数值,比如有7位,但你仍然只能按照你事先确定的位数来测算(比如2位),否则会很不准。
全部回答
  • setprecision 函数 功能:控制输出流显示浮点数的数字个数,可以控制小数点右面的位数头文件: iomanip
  • 例程: #include  #include  using namespace std; int main( void ) {     const double value = 12.3456789;     cout << value << endl; // 默认以6精度,所以输出为 12.3457     cout << setprecision(4) << value << endl; // 改成4精度,所以输出为12.35     cout << setprecision(8) << value << endl; // 改成8精度,所以输出为12.345679     cout << fixed << setprecision(4) << value << endl; // 加了fixed意味着是固定点方式显示,所以这里的精度指的是小数位,输出为12.3457     cout << value << endl; // fixed和setprecision的作用还在,依然显示12.3457     cout.unsetf( ios::fixed ); // 去掉了fixed,所以精度恢复成整个数值的有效位数,显示为12.35     cout << value << endl;     cout.precision( 6 ); // 恢复成原来的样子,输出为12.3457     cout << value << endl; }
  • 我要举报
    如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    大家都在看
    微信里朋友被别人评价怎么看不到
    淘宝上的都美女鞋怎么样?都美时尚名品馆的东
    北京几月风最大?
    设计三条东北三省内蒙古西北旅游大区的线路
    哪里有避孕套买啊?要正品的哦
    吃四川炝锅鱼崇信分店这个地址在什么地方,我
    我追着梦个光点,你的爱没有上线是什么歌曲?
    为什么百度网盘登陆不上去?
    06年天籁跑了17万公里值得买吗
    尉氏县开封一品香饭店在哪里啊,我有事要去这
    深圳市理首通科技有限公司我想知道这个在什么
    哈弗h2全尺寸轮胎能装后备箱里么?
    “听说天一在你们出去露营那天出事了?” “
    刚买的明基20寸液晶显示器小图片不清晰,玩LO
    我和前男友以分手了,可是每次见面他老是对我
    推荐资讯
    甘家界牌柠檬鸭江南五一店地址有知道的么?有
    问一下外国语学院对英语成绩要求?
    【高一】请各位多给我一些周记素材吧,我实在
    尼康胶卷相机能通过转接环装上佳能ef镜头吗
    诺基亚5230最大可支持几G的内存卡?
    谁知道粤银消费卡如何激活、麻烦告诉下谢谢
    成飞牌干洗机公司现在还在吗
    会计从业资格准考证打印的照片很暗几乎全黑可
    东升五金电料在哪里啊,我有事要去这个地方
    人类对ddt认识的发展过程体现了哪些认识论的
    可歌可颂的四个近义词
    建筑工地木工一意外死吧,45岁家中有母亲83岁8
    手机登qq时,显示手机磁盘不足,清理后重新登
    刺客的套装怎么选啊?