gpt4 book ai didi

ruby - ruby 中的二进制分数

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:10 26 4
gpt4 key购买 nike

我想将 float 转换为二进制形式,例如 12.345。我完成了整数部分:

(12.345).floor.to_s(2) #=> 1100

然而,对于分数,找不到最佳方法。

我确实有办法,维基百科显示的方式 here ,但这是一个非常漫长的过程:一个带有一堆我想避免的临时变量的 while 循环。我想知道在 Ruby 中是否有更好的方法来做到这一点。

我想要得到的完整二进制形式是字符串形式的1100.011

最佳答案

您可以将它乘以足够大的 2 次方(例如 2 ** 10),然后将其转换为二进制,然后将小数点插入回去.

(12.345 * 2 ** 10).to_i.to_s(2).insert(-(10 + 1), ".")
# => => "1100.0101100001"

顺便说一下,我不认为 1100.011 是正确的形式。

关于ruby - ruby 中的二进制分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17862483/

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