C# 如何在Python中设置默认的十进制数字分隔符?

C# 如何在Python中设置默认的十进制数字分隔符?,c#,python,python-3.x,parsing,floating-point,C#,Python,Python 3.x,Parsing,Floating Point,我正在开发两个应用程序,一个运行在C#/.NET中,另一个使用仅针对Windows 10的Python 3解释器。这两个应用程序使用用于IPC(进程间通信)的本地网络套接字相互通信 由于两台Windows计算机可能具有不同的十进制数分隔设置(逗号或点),因此生成和解析浮点成为一场噩梦。例如,第一台机器将浮点解释为1.23,而其他机器预期1,23,这会导致程序错误 在过去,我使用以下行将C#/.NET中当前进程的默认分隔符设置为“.”: 为了解决逗号/点浮点解析问题,Python是否也有类似的功能

我正在开发两个应用程序,一个运行在C#/.NET中,另一个使用仅针对Windows 10的Python 3解释器。这两个应用程序使用用于IPC(进程间通信)的本地网络套接字相互通信

由于两台Windows计算机可能具有不同的十进制数分隔设置(逗号或点),因此生成和解析浮点成为一场噩梦。例如,第一台机器将浮点解释为
1.23
,而其他机器预期
1,23
,这会导致程序错误

在过去,我使用以下行将C#/.NET中当前进程的默认分隔符设置为“.”:


为了解决逗号/点浮点解析问题,Python是否也有类似的功能?

为什么要将其作为字符串而不是数字传递?在使用TCP/IP网络套接字时,只有一个字节的网络流。接收进程不知道如何开箱即用地解释其他进程发送的内容。实现协议是应用程序开发人员的责任,解释浮点数取决于操作系统设置(如果不是自己解析的话)。但是为什么字节网络流会阻碍您以字节的形式发送数字呢作为一个小例子,请看:-我不知道如何在python中读取一个字节数组并获取它的数量,但也许这些信息可以帮助您解决问题,这实际上是一个问题吗?在我看来,python总是使用
作为基数分隔符格式化数字,除非显式使用format code
n
(至少在我使用的python版本中,这是有缺陷的)。为什么要将其作为字符串传递,而不是作为数字传递?在使用TCP/IP网络套接字时,只有字节网络流。接收进程不知道如何开箱即用地解释其他进程发送的内容。实现协议是应用程序开发人员的责任,解释浮点数取决于操作系统设置(如果不是自己解析的话)。但是为什么字节网络流会阻碍您以字节的形式发送数字呢作为一个小例子,请看:-我不知道如何在python中读取一个字节数组并获取它的数量,但也许这些信息可以帮助您解决问题,这实际上是一个问题吗?在我看来,python总是使用
作为基数分隔符格式化数字,除非显式使用format code
n
(至少在我使用的python版本中,这是有缺陷的)
CultureInfo customCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";
CultureInfo.DefaultThreadCurrentCulture = customCulture;