teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

別解追記

2015/07/25 23:50

投稿

otn
otn

スコア86349

answer CHANGED
@@ -8,4 +8,15 @@
8
8
  end
9
9
  ```
10
10
 
11
- `BigDecimal`ライブラリを使うと、任意精度(jの上限無し)にも出来ます。
11
+ `BigDecimal`ライブラリを使うと、任意精度(jの上限無し)にも出来ます。
12
+
13
+ 追記:
14
+ `BigDecimal`版です。`j+1`のところは`j`でも良いかもしれないけど考えてません。
15
+ ```Ruby
16
+ require "bigdecimal"
17
+
18
+ def foo(n,i,j)
19
+ fraction = BigDecimal(1).div(BigDecimal(n),j+1).to_s("f")[1..-1]
20
+ fraction[i..j].split(//).inject(0){|sum,x| sum+=x.to_i}
21
+ end
22
+ ```

1

誤りの修正

2015/07/25 23:50

投稿

otn
otn

スコア86349

answer CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  ```Ruby
5
5
  def foo(n,i,j)
6
- fraction = (1.0/n).to_s[1..-1]
6
+ fraction = sprintf("%.#{j+1}f",1.0/n)[1..-1]
7
7
  fraction[i..j].split(//).inject(0){|sum,x| sum+=x.to_i}
8
8
  end
9
9
  ```