是否可以格式化double
,所以他没有机会将文本2140.76改为214076而是让它为2140.76?
我不能使用','作为十进制数字,因为我正在阅读的整个文本文件都是使用'。'的数字。用于分隔小数,每天10000条记录,所以......
修改
double natMB = 0;
boolean check = double.TryParse(splitline[8], NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out natMB);
if (check == false)
{
natMB = 0;
}
else
{
natMB = natMB * 1024;
}
double intMB = 0;
boolean check2 = double.TryParse(splitline[9], NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out intMB);
if (check2==false)
{
intMB=0;
}
else
{
intMB = intMB * 1024;
}
0值是必要的,因为我需要在SQL语句中输入这些值,它们需要显示为0,而不是null。
答案 0 :(得分:1)
您可以使用不变文化格式化带小数句点的数字,无论您的本地文化设置如何:
string formatted = someDouble.ToString(CultureInfo.InvariantCulture);
答案 1 :(得分:1)
您的问题不明确,您是否要使用点小数分隔符解析字符串中的double?
如果是,请尝试:
double.Parse("2140.76", CultureInfo.InvariantCulture)
答案 2 :(得分:0)
从这里开始阅读:
http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx
基本上,您创建的NumberFormatInfo
可以自定义以与String.Format
一起使用,以使用您想要的任何格式。
答案 3 :(得分:0)
是否可以格式化双,因此他不会将文本2140.76改为214076而是 让它成为2140.76?
是。让我玩无知 - 我不知道你怎么能问这个问题并且给出了粗略的格式化方法。
我不能使用','作为十进制数字,因为我正在阅读的整个文本文件都是数字 使用'。'用于分隔小数,每天10000条记录,所以......
所以问题可能在于你手边的文化问题和另一方的无知开发者。无知,因为交换的文件应始终采用英文格式,以避免这种情况。
无论如何,基本上: *将您在线程中的文化信息更改为英语或 *使用英语文化信息进行解析和文本生成。
阅读您使用的方法的文档 - 其中包括允许您调整格式的文件。