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

相关推荐
山檐雾18 小时前
OctreeNode
unity·c#·八叉树
QfC92C02p21 小时前
C# 中的 Span 和内存:.NET 中的高性能内存处理
java·c#·.net
Yuri X-20211 天前
VS2022实战测试题——2
程序人生·c#·个人开发·visual studio
公子小六1 天前
基于.NET的Windows窗体编程之WinForms布局简介
windows·microsoft·c#·.net
zaim11 天前
计算机的错误计算(二百二十六)
java·python·c#·c·错数·mpmath
William_cl1 天前
[特殊字符]C# ASP.NET 架构封神之路:分层 + 仓储 + EFCore,写出企业级可维护代码!
架构·c#·asp.net
tq6J5Yg141 天前
.NET 10 & C# 14 New Features 新增功能介绍-带修饰符的简单 lambda 参数
开发语言·c#·.net
fe7tQnVan1 天前
从玩具到生产:基于 ChromaDB 打造工程级 RAG 系统
开发语言·c#
ySq0REx011 天前
.NET 10 & C# 14 New Features 新增功能介绍-.NET CLI工具改进
开发语言·c#·.net
张人玉1 天前
C#程序设计编程二维码识别程序
开发语言·c#·二维码