Ruby on rails 3 jruby上的Rails 3应用程序在会话中存储浮点数会丢失小数位数

Ruby on rails 3 jruby上的Rails 3应用程序在会话中存储浮点数会丢失小数位数,ruby-on-rails-3,session,floating-point,jrubyonrails,Ruby On Rails 3,Session,Floating Point,Jrubyonrails,我有一个rails 3应用程序在Windows7的jruby 1.6.2上运行。当我这样做时:session[:my_number]=4.95然后在另一个控制器中尝试使用put“my number is#{session[:my_number]}获取值,数字打印为4.0,也就是说,它似乎失去了精度。我尝试使用cookie store和db store。也尝试将其放入缓存。对我来说,base64编码似乎有问题,因为手动编码数字,然后对其进行解码会得到相同的结果。有人知道为什么吗?您尝试过使用:?谢

我有一个rails 3应用程序在Windows7的jruby 1.6.2上运行。当我这样做时:
session[:my_number]=4.95
然后在另一个控制器中尝试使用
put“my number is#{session[:my_number]}获取值
,数字打印为4.0,也就是说,它似乎失去了精度。我尝试使用cookie store和db store。也尝试将其放入缓存。对我来说,base64编码似乎有问题,因为手动编码数字,然后对其进行解码会得到相同的结果。有人知道为什么吗?

您尝试过使用:?

谢谢您的回复。这不是格式问题。数字是以浮点形式从会话中提取的,精确值为4.0,因此任何格式都无法返回这些小数。使用数字\u和\u精度只会得到4。问题是用于在会话中存储数据的base64编码/解码/封送处理过程,而不管数据的大小会话存储类型(cookie、activerecord等)。Rails会话使用特定于平台的
pack
方法将数据转换为base64编码字符串。在本例中,jruby实现了
pack