LinuxSir.cn,穿越时空的Linuxsir!

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

数据类型int与double转换的一点疑问?

[复制链接]
发表于 2006-6-1 23:49:05 | 显示全部楼层 |阅读模式
代码如下:
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4. int main(){
  5. int n,i;
  6. double r;
  7. bool is_prime;
  8. is_prime=true;
  9. cout<<"Enter a number and preess ENTER: ";
  10. cin>>n;
  11.    i=2;
  12.    r=sqrt(double(n));
  13.    while(i<=r){
  14.         if(n%i==0)
  15.           is_prime=false;
  16.          i++;
  17.        }
  18.    
  19.     if(is_prime)
  20.       cout<<"The number is prime.\n";
  21.      else
  22.       cout<<"The number is not prime.\n";
  23. return 0;
  24.   }
复制代码
其中r=sqrt(double(n));
    /换上r=sqrt(static_cast<double>(n))也可以.

而资料上讲数据类型变换中用如下形式
  1. static_cast<数据类型>(参数)
复制代码
在代码中为什么不用static_cast也行?
发表于 2006-6-2 00:03:59 | 显示全部楼层
数据类型转化分为隐式(implicite)和显式(explicite)转化
而显示转化在C++中又有两种,一种其实是C中的,因为C++兼容C,所以也保留了,就是double(n)形式的,不过,好像现在是推荐使用(double)n形式;一种是C++风格的,这在C中是没有的,就是static_cast<double>(n), dynamic_cast<..>等形式,推荐使用C++风格。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-2 22:30:44 | 显示全部楼层
多谢
pupilzeng兄,我正在因为(double)n 的形式没有写上,准备加上呢。
原来是c中的格式。看来要学的东西很多。
=====
我要向pupilzeng兄好好学习学习!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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