【C#】部分国家/语言,string字符串转decimal、float时,小数点解析异常、小数点丢失、小数点被忽略

现象:

部分国家地区,字符串转小数后,小数点丢失,比如:输入"12.34",输出1234,而非12.34。

部分相关函数decimal.Parse、decimal.TryParse、float.Parse、float.TryParse ···

原因:

看手机系统默认语言,中英文正常解析,印尼语则会出错,

因为不同国家的小数点写法不同,有 '.' 和 ',' 两种:

中文字符串"12.34",转成印尼小数时,因为小数点表示方式的区别,结果是1234;印尼小数"12,34"转成中文小数,也是1234。

解决:

读取手机系统默认语言,

方法1. 解析小数数值前替字符:string.Replace(',','.')

方法2. Android Java函数:DecimalFormat.applyPattern、DecimalFormat.setDecimalFormatSymbols,修改数值格式化符号

相关推荐
du fei19 分钟前
C# 串口通信
开发语言·c#
DXM05214 小时前
ArcGIS Engine开发教程--从零搭建GIS桌面应用
大数据·数据库·arcgis·c#·arcgis engine·arcgis engine开发
专注VB编程开发20年5 小时前
WebView2最低支持.NET frame4.5,win7系统
c#·.net·webview2·vb.net
时光追逐者7 小时前
一款基于 .NET 8 + Vue 开源的、企业级中后台权限管理系统
前端·vue.js·microsoft·开源·c#·.net·.netcore
整点薯条吃吃喽7 小时前
C,C++,C#
c语言·c++·c#
专注VB编程开发20年7 小时前
C#,VB.NET正则表达式法替换代码
正则表达式·c#·.net·vb.net
局外人_Jia8 小时前
【 C# 使用 MiniExcel 库的典型场景】
开发语言·windows·c#·miniexcel
Verdure陌矣17 小时前
游戏开发中 C#、Python 和 C++ 的比较
c++·python·游戏·c#
FAREWELL0007518 小时前
C#核心学习(十二)面向对象--多态(1)virtual override和base三剑客
学习·c#·多态·面向对象·oop·虚方法表
ou.cs18 小时前
c# 企业级ADB通信示例
开发语言·adb·c#