永发信息网

为什么提取char数组中数字的时候,只能取到数字的前6位?

答案:1  悬赏:50  手机版
解决时间 2021-03-21 15:02
源代码如下,比如ToNum(“123.456841”),得到的却是123.456,后面的像是被截断了一样?为什么啊? #include #include using namespace std; double static ToNum(char *s) { int k=0; double x,y=1.0; int flag=1; char c; x=0.0; c=s[k];//取得当前符号 while(c>='0'&&c<='9'||c=='.')//为数字或小数点需要转换 { k=k+1;//扫描指针进1 if(c>='0'&&c<='9')//为数字符号 { if(flag==0)//转换小数点后的数值 { y=y*0.1; x=x+(c-48)*y; } else//转换整数部分的数值 { x=10*x+(c-48); } } else { flag=0;//为小数点‘.’ } c=s[k];//趣当前符号 } return x;//返回转换得到的实数 }
最佳答案
我上次也碰到这个问题 不过是直接输出 double 型数据 得到的都是有效数字为6 的数据 那是因为c++默认double类型的数据输出时 有效数字为6位 如果想输出得到想要得到的位数 需要自己制定格式 这个我就不多说了 哈 自己可以去试试 有机会的话 可以讨论一下double 数据类型在C/C++ 还有c# 还有matlab 中的存储结构哦 (用setprecision(n)命令 表示有效数字的位数).
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
分解因式:2x3-8x2=________;x2-14x+49=____
安然纳米汗蒸(新驿镇店)地址在哪,我要去那里
3年前一次信用卡忘记还款对贷款有影响吗
Excel表格中Subtotal中函数序列号9和109的区
为什么天天酷跑登不上去?
漳州农商银行大同支行这个地址在什么地方,我
聊天说晚上好好不好
小学数学,脱式计算
潍坊市第三十二中学地址有知道的么?有点事想
金典健身会所地址在什么地方,想过去办事
类似星巴克这样的国际咖啡连锁还有哪些?
鸡蛋加鸡精能不能吃
Everyone enjoys music. But do you know it
关于酒的说说搞笑句子,断送一生唯有酒,求搞笑
工人个个要团结
推荐资讯
从宁波客运中心站到尖山的普客车会经过新昌吗
歌名连起来的一句话,猜字谜(连起来为一句话)
驿城区驻马店一剪美发屋(泌阳县板桥粮食管理
嵊泗封海期是什么时候
北笙 南故有什么关系又代表着什么
中国取消劳动改造了没有
小小米(我格广场)地址在哪,我要去那里办事
2008年初,一场罕见低温雨雪冰冻灾害,从南到
评论自己是个怎样的人,如何测试一个人喜不喜
公租房4人的,没两房,有一房不选算弃权吗
王尔德的情人/王尔德 电影完整版!完整版的下
引滦入津工程什么时间开始建
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?