2010-08-29 63 views

回答

5

可以使用fixed I/O操作器来强制数目要打印在定点表示法:

double d = 42.0; 
std::cout << std::fixed << d; 

std::scientific则正好相反:它迫使数在科学记数法要打印)

+0

我想将这个值保存在两倍! – yesraaj 2010-08-29 17:44:38

+1

@yesraaj:你什么意思? 42.0是42.0,并且如何格式化以便打印对存储值没有影响。 – 2010-08-29 17:45:53

+0

我将值保存到一个数据库中,在这里我使用double将其转换为Oracle中适当的NUMBER类型。 – yesraaj 2010-08-29 17:46:48

0

Oracle(通常)不会执行二进制数(some support was added in 10g)。 数字以内部格式保存,除非您使用隐式或显式TO_CHAR,否则由“客户端”来显示它们(或任何所需的“美化”)。

select to_number('1e-1') num, 
     to_char(to_number('1e-1'),'9.9EEEE') sci_num, 
     to_char(to_number('1e-1')) std_num 
from dual; 

      NUM SCI_NUM ST 
--------------- --------- -- 
      .10 1.0E-01 .1