【发布时间】:2021-07-19 14:29:39
【问题描述】:
如果我有一个等于 8675309 的 int,将其转换为等于 0.8675309f 的浮点数的最佳/最快方法是什么?
示例:
输入为 int:8675309
输出为浮点数:0.8675309
输入为 int:4234512
输出为浮点数:0.4234512
输入为 int:56
输出为浮点数:0.56
输入为 int:123456
输出为浮点数:0.123456
输入为 int:654321
输出为浮点数:0.654321
我尝试将输出映射到 0 到 1 之间的值,但对于 RNG 设置,它的平均值往往为 0.64,这并不理想。
我已经使用 Tanh、Cos、Sin 和其他函数对其进行映射,但似乎我真的只想得到以小数开头的确切数字,因此精度保持在一样。
我想我可以除以一个很大的数字,但它不会是一致的,因为数字的大小必须随着 RNG 输出大小的变化而变化。
我真的不知道为什么这里没有足够的信息。在第一行很清楚我到底想要做什么。谁能比这更具体?
【问题讨论】:
-
这能回答你的问题吗? How do I convert Int/Decimal to float in C#?
-
@gunr2171 没有,请阅读问题
-
那么还要做乘法吗?
-
欢迎使用 stackoverflow。到目前为止,您自己尝试过什么?你遇到了什么问题?你研究了什么?请编辑您的问题以包含更多信息。另请阅读what's on topic 和how to ask a good question 我推荐taking the tour,以及阅读how to ask a good question 和what's on topic。
-
我认为@LasseV.Karlsen 指出的问题是,通过这种投影,您的分布位于 0.1 和 1 之间,而不是介于 0 和 1 之间! (理论上它可以精确地绘制 0,但您可以理解我的意思),任何映射在 0 和 0.1 之间的值,您会映射到更高的值,从而导致分布不均匀。这也是为什么人们在谈论 X-Y 问题而您没有提供足够信息的原因。你对你真正想要达到的目标只字未提。
标签: c# data-conversion