首页 > C# > 如何在 C# 中将十进制转换为双精度?

如何在 C# 中将十进制转换为双精度?

上一篇 下一篇

我想将十进制变量“trans”分配给双精度变量“this。不透明”。

decimal trans = trackBar1.Value / 5000;
this.Opacity = trans;

当我构建应用程序时,它给出了以下错误:

无法将十进制类型隐式转换为双精度

分割线

网友回答:

对于通用问题“十进制与双精度?”的更通用答案:

十进制用于货币计算以保持精度。双精度用于不受微小差异影响的科学计算。由于 Double 是 CPU 的本机类型(内部表示形式存储在基数 2 中),因此使用 Double 进行的计算的性能优于十进制(在内部以 10 为基数表示)。

分割线

网友回答:

不需要显式强制转换来如下所示:double

double trans = (double) trackBar1.Value / 5000.0;

将常量标识为(或标识为 )就足够了:5000.05000d

double trans = trackBar1.Value / 5000.0;
double trans = trackBar1.Value / 5000d;

分割线

网友回答:

您的代码在 VB.NET 中运行良好,因为它隐式执行任何强制转换,而 C# 同时具有隐式和显式转换。

在 C# 中,从十进制到双精度的转换是显式的,因为您会失去准确性。例如,1.1 不能准确地表示为双精度数,但可以表示为小数(请参阅“浮点数 – 比您想象的更不准确”了解原因)。

在 VB 中,编译器为您添加了转换:

decimal trans = trackBar1.Value / 5000m;
this.Opacity = (double) trans;

这必须在 C# 中明确说明,但可以通过 VB 更“宽容”的编译器来暗示(double)

模板简介:该模板名称为【如何在 C# 中将十进制转换为双精度?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 191次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-10
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 企业网站 微信文章 微信公众平台 单页式简历模板 微信图片 微信素材 自适应 微信模板 响应式
您可能会喜欢的其他模板