我正在尝试编写一个函数,它基本上将字符串数组转换为字符串数组,其中数组中的所有双精度数都舍入为我设置的小数位数.数组中也可以有字符串,它们根本没有双重值.
string[,] values = new string[1, 3];
values[0, 0] = "hello";
values[0, 1] = "0.123";
values[0, 2] = "0,123";
int decimalPlaces = 2;
double tmp;
string format = "F" + decimalPlaces.ToString();
IFormatProvider provider = CultureInfo.InvariantCulture;
for (int i = 0; i < values.GetLength(0); i++)
{
    for (int j = 0; j < values.GetLength(1); j++)
    {
        if (double.TryParse(values[i, j], out tmp))
        {
            values[i, j] = tmp.ToString(format, provider);
        }
    }
}
Console.ReadLine();
结果必须是:"你好","0.12","0.12",但它是"你好","123.00","0.12"将以错误的方式对待逗号.有没有人有一个简单而有效的解决方案?
我使用.NET4
我使用 en-US 语言环境,并且希望我的应用程序仅以这种方式工作。
不过,我的一些软件客户来自小数点用“,”表示的国家(例如挪威)。
因此,下一行为我的挪威客户抛出异常:
double a = double.Parse("1.5");
我读过我可以更改 CurrentCulture,如下所示:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
问题是我必须为每个线程单独执行此操作。此外,我不完全确定我将在哪里隐式解析双精度,所以我必须在每个线程创建时执行此操作......
我读到有一个针对 .NET 4.5 的解决方案,通过更改DefaultThreadCurrentCulture.
有没有人想到一个通用的解决方案,无需升级我的 .NET 框架版本?
这里发生了什么?
Convert.ToDouble("1.3")
我有一个值为"1.3"的字符串.当我转换为double时,它返回13.我想返回1.3.
我在c#中有这个问题,我想将一个字符串转换为double.
textBoxKostOnderhoud.Text = "0.08";
kost.OnderhoudKost = double.Parse(textBoxKostOnderhoud.Text);
这使我的数据库中的80.00,我不知道为什么.这个问题有什么解决方案吗?
这是我如何将我的值添加到数据库(mysql)
public bool insert(Kost kost)
{
    string query = "INSERT INTO kost (wagenId, onderhoudKost, tolKost, bedrijfsVerzekering, autoVerzekering, ladingVerzekering, wegenBelasting, eurovignet, accountantKost, telefoonKost, documentenEnVergunningen, onvoorzien, overige, andere) VALUES('" + kost.WagenId + "', '" + kost.OnderhoudKost + "', '" + kost.TolKost + "', '" + kost.BedrijfsVerzekering + "', '" + kost.AutoVerzekering + "', '" + kost.LadingVerzekering + "', '" + kost.WegenBelasting + "', '" + kost.Eurovignet + "', '" + kost.AccountantKost + "', '" …我需要将表数据库输入的字符串转换为 C# .NET 4 中的整数值,并尝试了受此链接启发的代码:
    int i;
    string Entry_Level = Convert.ToInt32("2,45");
    i = Convert.ToInt32(Entry_Level); 
但我有这个错误:
编译器错误消息:CS0029:无法将类型“int”隐式转换为“string”
编辑
解决方法:
    decimal i;
    string Entry_Level = "2,45";
    i = Convert.ToDecimal(Entry_Level);
    Response.Write(i.ToString());
    Response.End();
输出结果是 2,45,非常感谢!
在我的语言环境中,小数点分隔符是','.
但是,我仍然想编写一个C#应用程序,该应用程序使用使用'.'的数字.作为小数分隔符.
        string b = "0,5";
        double db = double.Parse(b); // gives 0.5
        string a = "0.5";
        double da = double.Parse(a); // gives 5, however i would like to get 0.5
class Program
{
    static void Main(string[] args)
    {
        string str = "0.898";
        double dbl = Double.Parse(str);
        dbl++;
        Console.WriteLine(dbl);
        Console.ReadLine();
    }
}
我需要工作的所有其他格式,如"100"工作.但是只要我添加一个"点",我就会FormatException出错.
这基本上是我的代码:
string text = "-0.05537987";
float value = Single.Parse(text);
当我尝试像我在这里解析一个负数时,我得到"输入字符串格式不正确".
我尝试按编号订购部门,但由于部门编号作为字符串存储在数据库中,我不能只使用按编号订购。我尝试将其解析为浮点数,但没有奏效。然后我尝试将其解析为 Double。那也行不通。有什么建议?以下是我的代码。
using (var db = new Context())
{
    var datasource = (from x in db.Departments 
                      orderby double.Parse(x.DepartmentNumber) 
                      select x).ToList();
    lvData.DataSource = datasource;
    lvData.DataBind();
}
感谢您的回答,我做了以下操作,但结果并不完全正确。
 var datasource = (from x in db.Departments orderby x.DepartmentNumber select x).ToList().OrderBy(Department => float.Parse(Department.DepartmentNumber));
我正在编写一个程序,将数据从微控制器获取到 PC。数据为浮点格式。我尝试使用将字符串转换为浮点型Convert.ToSingle(string),但转换结果错误:
正如您所看到的,它丢失了前导 0. ,这是出乎意料的。怎么会发生这种事?
我对 C# 很陌生,一直在寻找有关使用 Int32.Parse、Int32.TryParse、Convert.Int32 等将字符串转换为整数的解决方案。但是我找不到合适的解决方案来接近我想要的。我在这里找到了一个类似的帖子:运算符 '>=' 不能应用于 'string' 和 'string' 类型的操作数,但仍然找不到正确的解决方案。
这是我正在尝试编码的内容的简要说明。
打开名为“compare.xls”的 Excel 文件,读取文件并写入名为“tline.txt”的文本文件
然后打开文本文件“tline.txt”,逐行读取文本,只写入带有条件语句的名为“mkmatlab.txt”的文本文件。条件语句:如果从该行读取的数字为 25 <= x <= 50,则将其写入“mkmatlab.txt”(仅当它是整数时才写入文件)。
Excel文件中的内容的一个想法:
A1..|  B1....... |  C1........ | D1........| E1........|      
0.1 |10.2000    |53.6000    |52.7894    |24.9608                                        
0.2 |26.8209    |55.0851    |56.4726    |35.8431                                    
0.3 |10.1009    |56.0314    |56.5013    |27.8922                                    
0.4 |17.7008    |60.0054    |59.7650    |37.8018    
*符号 .. 和 | 只是在这里充当间距,Excel 文件或文本文件不包含任何这些符号。
说明:第一行包含 A1 到 E1。对于列 A1,包含 0.1 到 0.4,对于列 B1 到 E1,依此类推。
我在线上有评论
if (words1[t] >= 25 && words1[t] <= 50)
我需要帮助的地方。
StreamReader fidin …