在C#中将分数转换为浮点数

3
请问有人可以帮忙吗?我正在按照这里的教程操作,因为我需要得到点斜式方程y−y1=m(x−x1)
我已经顺利地完成了教程的前三步,但是卡在了第四步。为了从这个方程y−3=0.272727(x−4) 转化成11y−33=3(x−4)(去掉右边的分数),我需要在两边同时乘以11。
然而,我的问题在于我显然不会使用分数,而是要在C#中使用浮点小数。所以我的值将是0.272727,而不是3/11。那么我需要在两边同时乘以什么才能得到正确的答案呢?或者说这样做是否可行?
我的问题是,如何在十进制形式下从这个方程y−3=0.272727(x−4)转化成11y−33=3(x−4)
请问有人有任何建议或替代方法吗?
提前感谢您的帮助。

1
写成3.0/11,这样整个表达式就变成了浮点数。然后你可以做任何操作。 - Oliver
我仍然不知道这将如何解决我的问题,因为我只有十进制数作为起点(教程页面和公式仅供参考,而非我实际使用的实际值)。即使我像这样将其转换为十进制数3.0/11,我仍然回到了原点。那么我该如何摆脱这个小数呢?也许我没有完全理解这个解释。 - heyred
3个回答

1

分数类

在C#中,您实际上可以使用分数。使用它,您可以避免舍入误差。


1

我认为你把解方程的步骤和计算混淆了。 你需要先将方程解析成一种可以实际计算的形式。 普通编程语言(不适用于Mathematica等)无法处理符号计算或未知数。 它们只能在所有使用的变量具有具体值的情况下计算表达式的结果。


"常规编程语言" 嗯,什么是常规?你有很多API可以处理符号计算和未知数。例子:Wolframalpha API - Pedro Ferreira
是的,抱歉,也许我表达不太准确。但我意识到在计算值之前必须先解决方程。一旦我解决了方程,我知道如何进行计算,但解决方程对我来说是个问题。 - heyred
是的,但是当尝试解决某些方程并再次在程序中使用时,每次都解决它是不切实际的。如果需要事先弄清方程,则无法使用静态编译代码进行计算。 然而,仍然可以使用Wolfram Alpha来首先解决它,然后再使用它,尽管手动完成可能是一个很好的练习。 - Niklas Schnelle
当性能至关重要时,您应该绝对使用简单的双精度浮点数来计算您的分数,因为这是您的 CPU 可以处理的。 - Niklas Schnelle
根据@Hans Moolman的帖子,只要按他想要的值的顺序插入它们,方程就基本上是静态的。Wolframalpha能够解决多个方程,给出未知数的结果。因此,从CPU的角度来看,这不应该是什么问题。 - Pedro Ferreira

0
首先,在尝试运行计算方程式的表达式之前,您应该检测哪个值具有 分母,可以使用子字符串或其他方法,然后乘以您的方程式,再尝试计算它。 或者,另一种方法是使用 FRACTION类

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接