DynamoDB 以 Ruby 中的小数形式返回数字而不是整数
DynamoDB returning Numbers as decimals not integers in Ruby
我在地图中存储了一些数字。它们设置正确,并正确显示在 DynamoDB 界面中:
results List [1]
0 Map
dateTimeCompleted Number : 1554138543
questionsAnswered Number : 10
questionsCorrect Number : 5
但是,当我使用 AWS Ruby SDK 得到响应时,它们变成了小数。
"dateTimeCompleted"=>0.1554376141e10,
"questionsAnswered"=>0.2e2,
"questionsCorrect"=>0.5e1
注意这不是同一个项目,所以我知道数字不匹配,格式是问题。
如何告诉 SDK 我希望它们是整数?
或
我需要自己将 Ruby 中的它们映射到整数吗?
使用to_i
:
0.1554376141e10.to_i # => 1554376141
要转换哈希中的所有值:
my_hash.reduce({}) { |memo, (k,v)| memo[k] = v.to_i; memo }
或:
my_hash.transform_values(&:to_i)
我在地图中存储了一些数字。它们设置正确,并正确显示在 DynamoDB 界面中:
results List [1]
0 Map
dateTimeCompleted Number : 1554138543
questionsAnswered Number : 10
questionsCorrect Number : 5
但是,当我使用 AWS Ruby SDK 得到响应时,它们变成了小数。
"dateTimeCompleted"=>0.1554376141e10,
"questionsAnswered"=>0.2e2,
"questionsCorrect"=>0.5e1
注意这不是同一个项目,所以我知道数字不匹配,格式是问题。
如何告诉 SDK 我希望它们是整数?
或
我需要自己将 Ruby 中的它们映射到整数吗?
使用to_i
:
0.1554376141e10.to_i # => 1554376141
要转换哈希中的所有值:
my_hash.reduce({}) { |memo, (k,v)| memo[k] = v.to_i; memo }
或:
my_hash.transform_values(&:to_i)