gpt4 book ai didi

c# - 华氏度和摄氏度相互转换无损

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:24 25 4
gpt4 key购买 nike

问题是我有一个代表华氏单位的double

var fahrenheit = 80.0;

要将它转换为摄氏度,我使用公式

var celsius = (fahreheit - 32.0) / 1.8;

它给出一个数字26.666667(比方说26.67)

当我把它转换回来时

var fahrenheitAgain = 1.8 * celsius + 32.0;

如果我有 2 个小数位,它会给出一个更高的数字 80.006,四舍五入为 80.01。但是我如何获得与以前相同的值?

是否有任何已知的解决方案来来回转换任何 double 值以始终具有相同的值?

最佳答案

(let's say 26.67)

我们不要。

您不能以“假设”开始计算并期望结果准确。实际上,26.67 °C 恰好 80.006 °F(无舍入误差),因此从该点开始无法获得更精确的结果。

不要做“让我们说”;尽可能精确地存储您的结果,与显示它们的代码分开,并仅在最后一刻显示。

仍然会有不准确之处,因为有些值无法精确地放入 double(或 decimal 或任何其他此类类型)中,但您受它们影响的频率会降低,而且通常即使它们存在,效果也根本看不到。

关于c# - 华氏度和摄氏度相互转换无损,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487855/

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