请教一个Double.ToString()的问题,求解答 速结分

圣光麦造 2014-11-11 06:00:28
我在写项目时候 遇到一个问题
DataTable.Rows[0]["NAME"] = 0.8
Convert.ToDouble(DataTable.Rows[0]["NAME"]) = 0.8
Convert.ToDouble(DataTable.Rows[0]["NAME"]).ToString() = 0,8
转换为String以后 小数点变为逗号 我是中文操作系统 也没有修改国际资源 转换完以后 数据无法正确的显示
在转换前 引入过一个越南语的资源文件
...全文
306 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
以夕阳落款 2014-11-12
  • 打赏
  • 举报
回复
double.Parse(String)这个试试
  • 打赏
  • 举报
回复
double.ToString("F") double.ToString("F2") 固定保留两位小数 double.ToString("0.00")
yaojunyi3725 2014-11-12
  • 打赏
  • 举报
回复
可能和区域设置有关 不用管他 用Double.ToString(string format)这个重载 想保留两位就这样写("0.00") 出来的字符串肯定是点不是逗号
smthgdin_020 2014-11-11
  • 打赏
  • 举报
回复
ToString(CultureInfo.InvariantCulture) 或者 ToString("###.###");
winnowc 2014-11-11
  • 打赏
  • 举报
回复
应该是你当前线程的区域被设置为越南了,可以检查下Thread.CurrentThread.CurrentCulture的Name属性是什么。要不然就用Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture或者CultureInfo.InstalledUICulture把区域设置成无关或系统默认。要不然就用.ToString(CultureInfo.InvariantCulture)
失落的神庙 2014-11-11
  • 打赏
  • 举报
回复
楼上的代码可以试试
江南小鱼 2014-11-11
  • 打赏
  • 举报
回复
转换的时候加上区域对象,就不会有问题了。
圣光麦造 2014-11-11
  • 打赏
  • 举报
回复
引用 1 楼 wawd74520 的回复:
DataTable.Rows[0]["NAME"] = "0.8" 试试转成string再赋值进去。
拿出去放进去就是0,8了
江南小鱼 2014-11-11
  • 打赏
  • 举报
回复
/// <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;
        }
失落的神庙 2014-11-11
  • 打赏
  • 举报
回复
DataTable.Rows[0]["NAME"] = "0.8" 试试转成string再赋值进去。

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧