【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,修改数值格式化符号

相关推荐
我是唐青枫3 分钟前
别只会用 MemoryCache!C#.NET CacheManager 详解:多级缓存、Region 与 Redis 实战
缓存·c#·.net
工程师00710 小时前
C# 继承、多态、虚方法表(VTable)原理
c#·多态·继承·虚方法表
月昤昽12 小时前
autocad二次开发 3.阵列与面域
c#·二次开发·autocad二次开发
唐青枫15 小时前
别只会用 MemoryCache!C#.NET CacheManager 详解:多级缓存、Region 与 Redis 实战
c#·.net
吴可可12317 小时前
PointF坐标精度与使用注意事项
c#
鸽子一号18 小时前
c#Modbus通信
开发语言·c#
cjp56021 小时前
001.Blazor简介
c#
工程师0071 天前
C# 程序集、IL、CLR 执行流程
c#·clr·il·程序集
xxjj998a1 天前
PHP vs C#:核心差异全解析
开发语言·c#·php
我不在你不在1 天前
C# 异步与LINQ实战亮点
c#