解析希腊十进制数
本文关键字:十进制数 | 更新日期: 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")