如何将指数形式的浮点值转换为点符号?

时间:2010-08-29 17:41:15

标签: c++ oracle floating-point

  

可能重复:
  Prevent scientific notation in ostream when using << with double

在计算后我得到1e-1作为结果如何将结果从指数转换为点符号,即0.1?为什么它会自动转换为指数表示法!!

2 个答案:

答案 0 :(得分:5)

您可以使用fixed I / O操纵器强制以定点表示法打印数字:

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

std::scientific反其道而行之:它强制用科学记数法打印数字)

答案 1 :(得分: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