当前位置: 首页 > 编程笔记 >

C#浮点,双精度,十进制

越新霁
2023-03-14
本文向大家介绍C#浮点,双精度,十进制,包括了C#浮点,双精度,十进制的使用技巧和注意事项,需要的朋友参考一下

示例

浮动

float是.NET数据类型的别名System.Single。它允许存储IEEE 754单精度浮点数。存在此数据类型mscorlib.dll,每个C#项目在创建它们时都会隐式引用该数据类型。

大致范围:-3.4×10 38至3.4×10 38

十进制精度:6-9个有效数字

记法

float f = 0.1259;
var f1 = 0.7895f; // f是表示浮点值的文字后缀

应当指出,该float类型通常会导致明显的舍入误差。在精度很重要的应用程序中,应考虑其他数据类型。

double是.NET数据类型的别名System.Double。它表示一个双精度64位浮点数。存在此数据类型,该数据类型mscorlib.dll在任何C#项目中都隐式引用。

范围:±5.0×10 -324到±1.7×10 308

小数精度:15-16个有效数字

记法

double distance = 200.34; // 双重价值
double salary = 245; // 隐式类型转换为double值的整数
var marks = 123.764D; // D是文字后缀,表示双精度值

小数

decimal是.NET数据类型的别名System.Decimal。它代表一个指示128位数据类型的关键字。与浮点类型相比,十进制类型具有更高的精度和较小的范围,这使其适用于财务和货币计算。存在此数据类型,该数据类型mscorlib.dll在任何C#项目中都隐式引用。

范围:-7.9×10 28至7.9×10 28

小数精度:28-29个有效数字

记法

decimal payable = 152.25m; // 十进制值
var marks = 754.24m; // m是表示十进制值的文字后缀
           

 类似资料:
  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 这是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 我正在尝试将以下十六进制字符串转换为“ 41630D54FFF68872”到9988776.0(float-64)。 使用单精度float-32,我可以这样做: 但这会引发:java.lang.NumberFormatException:使用上面的64位十六进制时,Infinite或NaN。 如何将十六进制转换为使用64位IEEE-754编码的双精度浮点数? 谢谢 问题答案: 您需要双

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 是否有比浮点精度更好的数据类型? 问题答案: 小数数据类型 与基于硬件的二进制浮点数不同,十进制模块具有用户可更改的精度(默认为28位),可以与给定问题所需的精度一样大。 如果您对性能问题感到困扰,请查看GMPY

  • 我是为了好玩而创作的,但我仍然想认真对待它,一个承载各种测试的网站。通过这些测试,我希望收集统计数据。 一些数据将包括测试完成时间的百分比。我可以很容易地计算测试的百分比,但我希望在存储关于完成测试的各种不同值时返回真实数据。 大多数值都是PHP浮点值,所以我的问题是,如果我想要真正的统计数据,我应该在MYSQL中以浮点、双精度或十进制的形式存储它们吗。 我想利用MYSQL的函数,比如和以及。为了

  • 我不明白为什么浮点值与双精度值不同。从下面的示例来看,对于相同的操作,float 提供的结果似乎与双精度型不同: 输出: 你能解释一下float和double之间的区别吗?