当前位置: 首页 > news >正文

C#处理印尼地区的数字分隔符方法

1.在印尼 数字中的 小数点 千分位分隔符 的用法与欧美习惯相反
  • 逗号(,) 用作 小数点(如 1,23 表示 1.23)。
  • 点(.) 用作 千分位分隔符(如 1.000 表示 1000)。
查阅资料后发现,世界上很多国家都是使用这种数据分割符的,如: 德国、法国、意大利、西班牙、荷兰、比利时、葡萄牙、奥地利、丹麦、瑞典、芬兰、挪威、波兰、捷克、匈牙利等 大多数欧洲大陆国家
2.咱们大中国采用的数据分隔符是英美格式的
     如:1.23就是表示1.23
             1,000就是表示1000
3.此次做跨国项目,由于公司的WMS系统是部署在中国的云服务器上的,而数据之间是通过webservice的字符串传输。如果传输1.000的收货数量给中国的wms系统,wms系统会认为收货数量只有1。数据传输不准会出现大问题。
4.解决方法
   方法1:修改本地电脑配置,将印尼的时区和数字格式修改成与中国一致。(显然不合适,就算修改了系统,也不符合本地人的使用习惯)
   方法2:修改代码(C#),移除数字格式,采用不依赖于区域性的数字格式,代码如下:
public class NumberFormatConverter{        /// <summary>/// 将对象转换为不变文化格式的字符串 (.NET 3.5 兼容)/// </summary>public static string ToInvariantString(object value){if (value == null || value == DBNull.Value){return string.Empty;}// 处理数字类型if (value is IFormattable){return ((IFormattable)value).ToString(null, CultureInfo.InvariantCulture);}// 处理其他类型return value.ToString();}}
注意:入参必须要能转化为字符串的类型,且不能是字符串类型本身。
调用代码参考
material.OpenQty = NumberFormatConverter.ToInvariantString(dt_Material.Rows[i]["DEMAND_QTY"]);

5.进行测试,完美解决问题

相关文章:

  • leetcode 162. Find Peak Element
  • 人工智能的“歧视”:“她数据”在算法运行中隐形
  • 《Effective Python》第三章 循环和迭代器——永远不要在迭代容器的同时修改它们
  • 基于Gitee 的开发分支版本管理规范
  • 字符串(二)
  • leetcode 153. Find Minimum in Rotated Sorted Array
  • RabbitMQ的基本使用
  • 力扣-盛最多水的容器
  • 文件包含靶场实现
  • RK3576 Android 14.0 SDK开发指南(第一集)
  • vivado fpga程序固化
  • FPGA:基于Vivado的仿真流程与波形调试实践
  • 企业级网络安全护盾:剖析高防IP原理与防护策略
  • C# 语法篇:字段的定义和运算
  • 基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析技术
  • Python实现VTK - 自学笔记(4):用Widgets实现三维交互控制
  • 已解决:Git冲突完全解决指南(附最佳实践)
  • 第三个小程序动工:一款结合ai的菜谱小程序
  • 软考中级软件设计师——计算机网络篇
  • 国产远程工具如何重新定义高效连接?——从协议支持到生态整合的全面解析
  • 梅花奖在上海丨好戏在上海不缺观众,冷门剧种叫好又叫座
  • 赣州蓉江新区党工委原书记王凌主动交代问题,正接受审查调查
  • 最高法:政府信息公开案件审理应避免泄露国家秘密、商业秘密
  • 不止是生态优势,“浙江绿谷”丽水有活力
  • 海口警方通报“司机驾车拖行虐猫”:系意外,未发现故意虐猫行为
  • 照护者说|胡泳:向死而在,爱这个世界