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

相关推荐
旋律翼225 分钟前
Qt Bridges for C# 深度技术解析
开发语言·qt·c#
qq_454245032 小时前
BasicMethod.Map 设计框架:8 个并行基础模块的数学根基与实现
数据结构·算法·c#
Byron Loong3 小时前
【c#】Bitmap释放之 大象与蚊子
开发语言·c#
临风细雨4 小时前
从 Bun 的 Rust 重写,看 C# 如何重建 AI 基础设施层
人工智能·rust·c#
吴可可1234 小时前
C# CAD二次开发自定义实体实现
c#
z落落5 小时前
C# WinForm 线程池与事件等待+进度条暂停恢复实战案例
开发语言·c#
酷酷的身影7 小时前
Managers/APConfigManager.cs
开发语言·ui·c#
贾斯汀frank19 小时前
C# 15 类型系统改进:Union Types
开发语言·windows·c#
曹牧21 小时前
Visual Studio:输出路径
windows·c#
时代的狂21 小时前
如何理解 C# 的 async 和 await
c#·.netcore·async·await