全球化编程经验之数值类型的字符表示

当我们编写一款全球化软件的时候(特别是海外外包的软件项目,往往本土运行没有问题,部署到客户方,就有各类问题,时间也会是需要着重考虑的一个重要方面),就需要协调这些区域文化的差别。当时遇到了一个这样的问题,我想把string类型转换为double类型,如下图:

通过b和this.drpBaseLine.SelectedValue值的跟踪,你会发现我的string 0.2被转换成了2.0,这是不是个亮瞎了的问题,请你忽略网页刷新啊,没赋值啊各种问题,这里单纯的就是个string转double,转换的不正确。其实这涉及到全球化编程的问题,因为我当前的机器时区是荷兰的(当然可能还有一些其他的设置也是荷兰的),.net内置支持这种Globalization 的区别,会根据操作系统的 地区和语言自动加载相应文化区域的 framework 类库资源。

不同的区域,不同的文化,对于数值会有不同的表示方式,像荷兰他们的逗号代表的是小数点,点是分隔符,例如他们的“3,2"等价于我们的"3.2",那怎么解决区域不用这问题呢,其实dobule提供了一个接口用来设置区域的。如下图:

示列:

string a="0.25";

double b=double.Parse(a, System.Globalization.CultureInfo.InvariantCulture);// b=0.25

时间: 2024-10-14 21:30:38

全球化编程经验之数值类型的字符表示的相关文章

C++的XML编程经验――LIBXML2库使用指南[转]

C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML库,而且它同时支持多种编程语言:2)LIBXML2库的Tutorial写得不太好,尤其是编码转换的部分,不适用于中文编码的转换:3)网上的大多数关于Libxml2的介绍仅仅是翻译了自带的资料,没有详细介绍如何在windows平台下进行编程,更很少提到如何解决中文问题. 基于以上几点原因,决定写一个在

前端编程经验的总结

功能界面设计,涉及到的技术有前端的CSS+DIV布局,以前布局使用表格,框架,现在布局基本上 使用区块的浮动布局. 功能界面实际的一般思路是: >1. 首先是要有项目的需求分析,完成需求说明的文档,这个部分右需求分析是完成. >2. 功能界面的设计,这部分由美工和网站策划师完成. >3. 前端工程师完成功能界面的实现,必须分毫不差的实现美工的效果. >4. 布局完成,渲染完成之后,即可以为表单添加特效,校验及其他的特效等,也就是      前端工程师的脚本编程. >5. 有些

C#1(.net和C#的关系、VS与.net的对应关系、VS2012常用的几种应用程序、C#定义一个类的方法、类页面内容的解释、定义Person的类、调用Person类的方法、命名规范、数值类型)

1..net和C#的关系 .net是一个开发平台,C#是应用在.net平台上的一种语言.   2.VS与.net的对应关系  3.VS2012常用的几种应用程序 第一种是Windows窗体应用程序,也即是我们常用的C/S端的应用软件: 第二种是控制台应用程序,主要是用来学习调试C#代码的(老师上课应用的模式): 第三种是空Web应用程序,建立空的网页模式,B/S模式: 第四种是Web 窗体应用程序,建立后会生成一些常用的网页组件和功能,例如JS.image等,也是B/S模式. 4.C#定义一个类

C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)

一.数值类型及其调用原理 名称 说明 所占字节 范围 byte 字节型 1 -27~27-1 short 短整型 2 -215~215-1 int 整型 4 -231~231-1 long 长整型 8 -263~263-1 char 字符型 1 0~65535 float 单精度型 4 ±1.5*10-45~±3.4*1038 double 双精度型 8 ±5.0*10-324~±1.7*10308 bool 布尔型 1 只有true和false两个值 static void Main(stri

JavaScript基础 空字符串转为数值类型 Number()

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

【SQLServer笔记】SQLServer数值类型的NULL性

与C#.java等编程语言不同,在SQLServer中,int等数值类型的初始值为NULL,并且可以直接使用赋值运算符赋值为NULL,同时值为NULL的变量无法在消息栏中显示其值,只能在结果栏中显示NULL. 同时由创建数据库时的选项,当字符数据以“+”连接值为NULL的变量时,会导致连接后的结果为NULL. 1 DECLARE @ID INT; 2 SET @ID=NULL; 3 --以“+”链接NULL值与非NULL值后输出 4 PRINT '第一次输出@ID开始' 5 PRINT '当前@

5.6 array--高效的数值类型数组

本模块定义高效的数值类型数组,主要包括类型有:字符.整数.浮点数.数值类型数组与列表比较相似,主要区别在于列表可以放入不同类型的元素,而类型数组只能放入一种类型的元素.类型数组只支持下面的类型: 类型字符 C类型 Python类型 占用最小的字节 备注 'b' signed char int 1 'B' unsigned char int 1 'u' Py_UNICODE Unicode haracter 2 'h' signed short int 2 'H' unsigned short i

c++11 数值类型和字符串的相互转换

string和数值类型转换 c++11提供了to_string方法,可以方便的将各种数值类型转换为 字符串类型: std::string to_string(int value); std::string to_string(long int value); std::string to_string(long long int value); std::string to_string(unsigned int value); std::string to_string(unsigned lo

C++数值类型极限值的获取

C/C++中基本类型的数值极限值一般来说都是与具体平台有关的,在程序设计的过程中为了写出与平台无关的程序则必须通过合理科学的方法去获取各种类型的极值,常用的获取方法有两种:一种是传统的C语言所采用的预处理器常数,另一种方法则是通过标准库中所提供的模版类numeric_limits<>来获取这些极值. 下面先详解其用法后再评其优劣: 一.传统C语言的预处理器常数 在C++中这些C语言的预处理器常数任然可以用,一般对于各种基本固有类型的最大值宏为: INT_MAX.FLT_MAX.DBL_MAX.