请问一个Double.ToString()的有关问题,求解答 速结分
请教一个Double.ToString()的问题,求解答 速结分
我在写项目时候 遇到一个问题
DataTable.Rows[0]["NAME"] = 0.8
Convert.ToDouble(DataTable.Rows[0]["NAME"]) = 0.8
Convert.ToDouble(DataTable.Rows[0]["NAME"]).ToString() = 0,8
转换为String以后 小数点变为逗号 我是中文操作系统 也没有修改国际资源 转换完以后 数据无法正确的显示
在转换前 引入过一个越南语的资源文件
------解决思路----------------------
DataTable.Rows[0]["NAME"] = "0.8"
试试转成string再赋值进去。
------解决思路----------------------
------解决思路----------------------
转换的时候加上区域对象,就不会有问题了。
------解决思路----------------------
楼上的代码可以试试
------解决思路----------------------
应该是你当前线程的区域被设置为越南了,可以检查下Thread.CurrentThread.CurrentCulture的Name属性是什么。要不然就用Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture或者CultureInfo.InstalledUICulture把区域设置成无关或系统默认。要不然就用.ToString(CultureInfo.InvariantCulture)
------解决思路----------------------
ToString(CultureInfo.InvariantCulture)
或者
ToString("###.###");
------解决思路----------------------
double.Parse(String)这个试试
------解决思路----------------------
可能和区域设置有关 不用管他 用Double.ToString(string format)这个重载
想保留两位就这样写("0.00") 出来的字符串肯定是点不是逗号
------解决思路----------------------
double.ToString("F")
double.ToString("F2") 固定保留两位小数
double.ToString("0.00")
------解决思路----------------------
http://msdn.microsoft.com/zh-cn/library/kfsatb94.aspx
我在写项目时候 遇到一个问题
DataTable.Rows[0]["NAME"] = 0.8
Convert.ToDouble(DataTable.Rows[0]["NAME"]) = 0.8
Convert.ToDouble(DataTable.Rows[0]["NAME"]).ToString() = 0,8
转换为String以后 小数点变为逗号 我是中文操作系统 也没有修改国际资源 转换完以后 数据无法正确的显示
在转换前 引入过一个越南语的资源文件
------解决思路----------------------
DataTable.Rows[0]["NAME"] = "0.8"
试试转成string再赋值进去。
------解决思路----------------------
/// <summary>
/// 将字符串转换为Double型
/// </summary>
/// <param name="target">字符串,可接受空值</param>
/// <param name="defaultvalue"></param>
/// <returns>Double型</returns>
public static double? ToDouble(string target, double? defaultvalue)
{
double d;
return (double.TryParse(target, NumberStyles.Float, System.Globalization.CultureInfo.CurrentCulture, out d)) ? d : defaultvalue;
}
------解决思路----------------------
转换的时候加上区域对象,就不会有问题了。
------解决思路----------------------
楼上的代码可以试试
------解决思路----------------------
应该是你当前线程的区域被设置为越南了,可以检查下Thread.CurrentThread.CurrentCulture的Name属性是什么。要不然就用Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture或者CultureInfo.InstalledUICulture把区域设置成无关或系统默认。要不然就用.ToString(CultureInfo.InvariantCulture)
------解决思路----------------------
ToString(CultureInfo.InvariantCulture)
或者
ToString("###.###");
------解决思路----------------------
double.Parse(String)这个试试
------解决思路----------------------
可能和区域设置有关 不用管他 用Double.ToString(string format)这个重载
想保留两位就这样写("0.00") 出来的字符串肯定是点不是逗号
------解决思路----------------------
double.ToString("F")
double.ToString("F2") 固定保留两位小数
double.ToString("0.00")
------解决思路----------------------
http://msdn.microsoft.com/zh-cn/library/kfsatb94.aspx