Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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
C# TableAdapter执行奔腾数学_C#_Asp.net_Sql Server - Fatal编程技术网

C# TableAdapter执行奔腾数学

C# TableAdapter执行奔腾数学,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有一个项目,用户可以在文本框中输入小数。现在,我将该值转换为一个可为空的浮点变量,并将其传递给tableAdapter以插入或更新DB 现在这里是它得到wierd的地方,如果我给它一个.24的值,这就是传递给tableAdapter的值,但是,当我查看保存到数据库中的内容时,它被转换为0.2399999463582 我对它进行了调试,直到TableAdapter的insert调用为止,它被传递了一个.24的值。我的SQL server数据库列具有浮点类型 你知道为什么会这样吗?我需要切换到十进

我有一个项目,用户可以在文本框中输入小数。现在,我将该值转换为一个可为空的浮点变量,并将其传递给tableAdapter以插入或更新DB

现在这里是它得到wierd的地方,如果我给它一个.24的值,这就是传递给tableAdapter的值,但是,当我查看保存到数据库中的内容时,它被转换为0.2399999463582

我对它进行了调试,直到TableAdapter的insert调用为止,它被传递了一个.24的值。我的SQL server数据库列具有浮点类型

你知道为什么会这样吗?我需要切换到十进制吗


谢谢

解决方案是2表示的内力 浮点数

有些分数不能很好地表示

请在此处阅读更多信息:

切换到十进制将在这里起作用,但也会影响性能。
大约比float慢10倍,但您可能永远不会注意到它

解决方案是2表示的内力 浮点数

有些分数不能很好地表示

请在此处阅读更多信息:

切换到十进制将在这里起作用,但也会影响性能。

比float慢10倍,但您可能永远不会注意到它

decimal?还是双倍/浮动?因为0.23999494635582是double/float的典型值,正如他所说,这是预期的行为.float。看看我的表answer@Luxspes:所有内容都定义为浮点,没有double。double和float的行为相同。为什么要使用float?尝试改用十进制/数字。FLOAT的这种行为是有原因的。decimal?还是双倍/浮动?因为0.23999494635582是double/float的典型值,正如他所说,这是预期的行为.float。看看我的表answer@Luxspes:所有内容都定义为浮点,没有double。double和float的行为相同。为什么要使用float?尝试改用十进制/数字。FLOAT的这种行为是有原因的。我不相信这是FLOAT无法处理的事情,至少在DB端,C端似乎处理得很好。我开始在里面输入很多非常简单的数字,结果错的比对的多。浮点数在SQL server中就是那么一文不值?浮点数在二进制中就是那么一文不值。阅读链接@利米-你也可以对十进制说同样的话!你如何用十进制表示1/3的值?还是圆周率?还是Sqrt2?这里也一样。有些浮点数不能用二进制精确表示。@ChrisDunaway:同意,对于运行中的数字,您最终将不得不截断或舍入,但是,我给它一个较短的数字,一个浮点数应该可以轻松容纳;我有一个更长的。如果我不能用.24或.17这样一个简单的值来分配一个浮点,我看不出它有多大的价值。你可以在这里使用一个浮点,但你必须四舍五入才能得到一个好的结果。十进制应该和货币值一起使用,但这不是这里的要求。我不相信这是浮动无法处理的事情,至少在DB端,C端似乎处理得很好。我开始在里面输入很多非常简单的数字,结果错的比对的多。浮点数在SQL server中就是那么一文不值?浮点数在二进制中就是那么一文不值。阅读链接@利米-你也可以对十进制说同样的话!你如何用十进制表示1/3的值?还是圆周率?还是Sqrt2?这里也一样。有些浮点数不能用二进制精确表示。@ChrisDunaway:同意,对于运行中的数字,您最终将不得不截断或舍入,但是,我给它一个较短的数字,一个浮点数应该可以轻松容纳;我有一个更长的。如果我不能用.24或.17这样一个简单的值来分配一个浮点,我看不出它有多大的价值。你可以在这里使用一个浮点,但你必须四舍五入才能得到一个好的结果。十进制应与货币值一起使用,但这不是此处的要求。