解析希腊十进制数

本文关键字:十进制数 | 更新日期: 2023-09-27 18:32:00

我有以下一段代码:

decimal kwh = decimal.Parse(textBox1.Text, 
                            NumberStyles.AllowDecimalPoint, 
                            NumberFormatInfo.CurrentInfo);
decimal sale_price = decimal.Parse(textBox2.Text, 
                                   NumberStyles.AllowDecimalPoint, 
                                   NumberFormatInfo.CurrentInfo); 
decimal totalamnt = sale_price * kwh;

我的问题是,当区域设置设置为希腊语时,它不接受小数点后的任何数字,当您输入" , "

我尝试了InvariantInfo以输入带有" ."的小数,但它再次不接受它们。

有趣的是,当您进入控制面板->区域和语言->其他设置时,您可以为小数点设置所需的运算符,为数千设置所需的运算符。如果将十进制符号设置为 " .一切正常。

是否使用InvariantInfo并将其输入为" .或者,如果您使用当前信息并将其输入为" , "

这让我发疯,我尝试了很多方法,不仅是 Parse 方法,唯一的方法是将十进制符号设置为 " 。 但我不能只是改变人们的区域设置,因为我可能会搞砸他们正在使用的其他希腊软件。

请人们帮助我..我对计算机上的希腊语失去了理智。我真的很感激和感谢任何可以帮助我解决这个问题的人

(我将我的区域设置设置为希腊语)插入语句我导入 0.25 作为 sale_price 和 5.26 作为千瓦时。我正在使用断点,我看到变量的值是 0.25 和 1.2 使用不变信息。当它们存储在数据库中时,存储为 0 和 5。当我在区域设置中设置小数运算符时 " . " 而不是 ","我导入 0.25 和 5.65 并且它们被正确存储。当我将区域设置设置为英语美国并插入 0.25 和 5.65 时,它们被正确存储

解析希腊十进制数

string ammount = (textBox2.Text).替换(",",".");

如果你想避免更改每个ToDecimal()或十进制的麻烦。代码中的 Parse() 等函数,在加载任何表单之前,请尝试在应用程序开始时执行以下代码。

Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US")