0

我有两台电脑:

服务器 :

  • 森托斯。

电脑开发者:

  • 视窗XP

两个都:

  • 阿帕奇
  • php 5.3
  • 连接到同一个BD。

我的表有一个数字列。当我在 php 中打印数字列时,输出为:

服务器 :

12.244
12.890

电脑开发者

12,244
12,890

我希望 pc 开发人员将点打印为小数分隔符,但我不知道该怎么做。

两者在 php.ini ( datatimezone ) 和 pc developer 中具有相同的配置,小数分隔符的默认配置是点 ( .)。我希望你能帮助我。谢谢。

4

1 回答 1

0

nls_numeric_characters从初始化参数派生的数字字符(小数和组分隔符) 。它的默认值,源自nls_territory初始化参数,初始化参数的默认值nls_territory取决于操作系统——NLS_LANG分别源自 Linux/Unix 或 Windows 操作系统上的环境变量或注册表项。

您可以覆盖nls_numeric_characters初始化参数的默认值,具体取决于您的需要、实例范围、会话范围或语句范围。这是一个简单的例子:

/* current value:  , (comma) as decimal separator and 
                   . (period) as group separator and 
 */
SQL> show parameter nls_numeric_characters

NAME                                 TYPE        VALUE 
------------------------------------ ----------- -------------
nls_numeric_characters               string      ,.  


SQL> with t1(col) as(
  2    select 1.23 from dual union all
  3    select 234.43 from dual
  4  )
  5  select col
  6    from t1;

       COL  
----------          
      1,23        
    234,43                 

会话范围:

/* set . (period) as decimal separator and 
       , (comma) as group separator */  
SQL> alter session set nls_numeric_characters='.,';

Session altered.

SQL> with t1(col) as(
  2    select 1.23 from dual union all
  3    select 234.43 from dual
  4  )
  5  select col 
  6    from t1;

       COL                       
----------                    
      1.23                   
    234.43 

语句范围。在这种情况下,我们必须使用to_char()函数并提供数字格式模型:

SQL> with t1(col) as(
  2    select 1.23 from dual union all
  3    select 234.43 from dual
  4  )
  5  select to_char(col, '990d00', q'[nls_numeric_characters='.,']') as res
  6       , col
  7    from t1;


RES            COL   
------- ---------- 
   1.23       1,23 
 234.43     234,43    
于 2013-11-29T19:06:20.143 回答