当前位置: 首页 > 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.进行测试,完美解决问题
http://www.dtcms.com/a/202200.html

相关文章:

  • 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的菜谱小程序
  • 软考中级软件设计师——计算机网络篇
  • 国产远程工具如何重新定义高效连接?——从协议支持到生态整合的全面解析
  • SPA模式下的es6如何加快宿主页的显示速度
  • Index-AniSora技术升级开源:动漫视频生成强化学习
  • 深入解析FramePack:高效视频帧打包技术原理与实践
  • 什么叫生成式人工智能?职业技能的范式转移与能力重构
  • C++:迭代器
  • c/c++的opencv高斯模糊
  • 超长文本注意力机制如何突破传统 O(n²) 瓶颈
  • 大模型的说谎行为
  • 大模型——多模态检索的RAG系统架构设计
  • OD 算法题 B卷 【最佳植树距离】