码迷,mamicode.com
首页 > 其他好文 > 详细

keys

时间:2014-08-13 14:41:56      阅读:469      评论:0      收藏:0      [点我收藏+]

标签:style   os   io   问题   ios   on   sp   return   

1.
double 与0比较时有个精度问题,有时需精确到小数点后面几位,例如与>0.0001,而不能与>0比较




例如杭电1408
盐水的故事
ac
#include<iostream>
using namespace std;
int main()
{
    double vul,d;
    int sum;
    int n;
    while(cin>>vul>>d)
    {
        sum=0;
        n=1;
        while(vul>d*n)
        {
            sum=sum+n+1;
            vul=vul-d*n;
            n++;
        }
        while(vul>0.001)//此处最小精度得>0.001,不能为while(vul>0)
        {
            vul=vul-d;
            sum++;
        }
        cout<<sum<<endl;
    }    
return 0;
}
盐水的故事
ac
#include<iostream>
using namespace std;
int main()
{
    double vul,d;
    int sum;
    int n;
    while(cin>>vul>>d)
    {
        sum=0;
        n=1;
        while(vul>d*n)
        {
            sum=sum+n+1;
            vul=vul-d*n;
            n++;
        }
int k=vul/d;
        sum=sum+k;
        if((vul/d)-k < 0.000001) ;
        else 
            sum=sum+1;
        /*while(vul>0)
        {
            vul=vul-d;
            sum++;
        }*/
        cout<<sum<<endl;
    }    
return 0;
}






2.




double与long long哪个更大?




老师说是double,我查着好像是long long更大一点






float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;


double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。


float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;


double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。


long long :-922337203685775808~922337203685775807     共18位,


看来long long表示位数最多了







keys,布布扣,bubuko.com

keys

标签:style   os   io   问题   ios   on   sp   return   

原文地址:http://www.cnblogs.com/bofengyu/p/3909918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!