简单说明一下:oracle里有个数据是 .95
postgre的数据是  0.95
同样的C程序,
把数据取出来放到变量 
  double data;
里,
然后执行
  printf("%.1f",data);  // 保留一位小数打印结果从oracle得到的数据,最后得到 1.0
从postgre得到的数据,最后得到 0.9这是为什么呢?
请高人指教。
这个问题实在让人头疼啊。

解决方案 »

  1.   

    sqlplus里的执行结果是多少,估计是程序其他的地方做了什么处理的吧。
      

  2.   

    sqlplus 里面执行的结果是 .95
    psql 里面执行的结果是 0.95
    刚才发现如果取精度30位的话
    printf("%.30f",data); 
    oracle是0.950000000000000066613381477509
    postgre是0.949999999999999955591079014994
    结果的原因应该算是明了了但是,为什么从oracle取出来的和从postgres取出来的不一样呢?用的sql语句很一样,都是:select number into :data from table; 有没有什么解决办法啊?