Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是MySQL;十进制;存储C#十进制值需要精度和比例?_C#_Mysql_.net_Floating Point_Precision - Fatal编程技术网

什么是MySQL;十进制;存储C#十进制值需要精度和比例?

什么是MySQL;十进制;存储C#十进制值需要精度和比例?,c#,mysql,.net,floating-point,precision,C#,Mysql,.net,Floating Point,Precision,我想在MySQL数据库中存储一些值。我想最明显的MySQL数据库类型应该是 为了能够表示/存储C#十进制值类型的完整范围,我必须为十进制(a,b)精确设置精度“a”和刻度“b” 在十进制列声明中,可以(通常是)指定精度和小数位数;例如: 在本例中,5表示精度,2表示刻度。精度表示为值存储的有效位数,刻度表示小数点后可以存储的位数 据我所知,十进制数最多可以有29位有效数字。小数点的位置取决于实际值,还是我在这里犯了错误?这意味着我可以有一个最坏的情况,在小数点分隔符前29位或后29位 所以我假设

我想在MySQL数据库中存储一些值。我想最明显的MySQL数据库类型应该是

为了能够表示/存储C#十进制值类型的完整范围,我必须为十进制(a,b)精确设置精度“a”和刻度“b”

在十进制列声明中,可以(通常是)指定精度和小数位数;例如:

在本例中,5表示精度,2表示刻度。精度表示为值存储的有效位数,刻度表示小数点后可以存储的位数

据我所知,十进制数最多可以有29位有效数字。小数点的位置取决于实际值,还是我在这里犯了错误?这意味着我可以有一个最坏的情况,在小数点分隔符前29位或后29位


所以我假设,我必须至少使用类似于十进制(58,29)的东西来处理数据库中的这两种情况?

很好。根据文件,你确实需要十进制(58,29)来保证安全。Otoh,你可能了解问题域,可以相应地限制小数位数。“好主意。根据文档,你确实需要小数点(58,29)来确保安全。”@TaW共享文档链接?它们在OP中。@TaW我不阅读带有“安全小数点(58,29)”数字的注释。。我发现最好的是。“MySQL以65位十进制数字的精度执行操作,这应该可以解决最常见的不准确问题。”嗯?所以净小数有28-29位,不指定小数点的哪一侧。当然,这不仅仅与操作有关,还与存储有关。
salary DECIMAL(5,2)