gpt4 book ai didi

c# - Float/Float = 奇怪的结果

转载 作者:行者123 更新时间:2023-11-30 13:39:38 24 4
gpt4 key购买 nike

我有两个值,一个来自用户输入,另一个来自数据库。

var userinput = form["someInput"];
var valuefromDB = GetValue(someNumber);

public float? GetValue(int id){
return (float?) db.table.where(p=> p.id == id).select(p=> p.Value).SingleOrDefault();
}

userinput 的值为“1”作为字符串,而 valuefromDB 的值为 0.001 作为 float 。

所以 1/0.001 = 1000

但我的 C# 代码给我的结果是 999.999939;

var final = float.Parse(userinput) / valuefromDB

当我将“2”作为用户输入值时,结果是正确的,2000...

最佳答案

那是因为不是所有的十进制数都可以准确地用二进制表示(即 the representation that float uses )。解决方案是将结果格式化为所需的小数位数,从而使其四舍五入并因此“正确”显示。

更新:为了显示一个float的格式,看看this MSDN reference pagethis page of examples .

关于c# - Float/Float = 奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com