質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1009閲覧

Ruby「1人あたりの料金を表示させたい」

saki_program

総合スコア31

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/07/04 16:04

60分コース 10000円
90分コース 15000円
120分コース 18000円

希望のコース番号を選択してください

ご希望のコース: 60分コース
何名様でご利用ですか(3名以上のご利用で3000円割引)
4
4名様37000円になります。

このように表示されるものですが、
2つ目のコードに書かせていただいた
最後の表示にある
puts "お一人様あたり、 円になります。"
一人あたりの料金を表示させたいです。

そして一人当たりの料金ですが、十の位は切り捨て
9571.42、9570円などの表示は、9500円と表示させたいです。

一人当たりの料金を表示させ、
かつ十の位は切り捨てるにはどのように記述すればよいでしょうか。

Ruby

1class Menu 2 attr_accessor :name 3 attr_accessor :price 4 5 def initialize(name:, price:) 6 self.name = name 7 self.price = price 8 end 9 10 def info 11 return "#{self.name} #{self.price}円" 12 end 13 14 def get_total_price(count) 15 total_price = self.price * count 16 if count >= 3 17 total_price -= 3000 18 end 19 return total_price 20 end 21end

Ruby

1require "./ryoukin" 2 3menu1 = Menu.new(name: "60分コース", price: 10000) 4menu2 = Menu.new(name: "90分コース", price: 15000) 5menu3 = Menu.new(name: "120分コース", price: 18000) 6 7menus = [menu1, menu2, menu3] 8 9index = 0 10menus.each do |menu| 11 puts "#{index}. #{menu.info}" 12 index += 1 13end 14 15puts "--------------" 16puts "ご希望のコース番号を選択してください" 17 18order = gets.chomp.to_i 19 20selected_menu = menus[order] 21 22puts "ご希望のコース: #{selected_menu.name}" 23 24puts "何名様でご利用ですか(3名以上のご利用で3000円割引)" 25 26count = gets.chomp.to_i 27 28puts "#{count}名様#{selected_menu.get_total_price(count)}円になります。" 29puts "お一人様あたり、 円になります。"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

r.rb

ruby

1def warikan(price, count) 2 price / count / 100 * 100 3end 4 5total_price = 37000 6count = 4 7puts("お一人様あたり、#{warikan(total_price, count)}円になります。(100円未満は切捨て)")

実行例
イメージ説明

投稿2020/07/05 11:00

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saki_program

2020/07/07 10:56

ご丁寧にありがとうございました!
guest

0

ベストアンサー

foorメソッドを使うと、桁位置を指定して切り捨てられます。

Ruby

1puts 9571.42.floor(-2) 2#=> 9500

投稿2020/07/04 16:52

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saki_program

2020/07/05 01:54

これはたとえば、 9571.42だという例えで使ったので、 最後に、puts "お一人様あたり、(ここに表示) 円になります。 こちらに反映されるようにはどうすればという質問でした。
otn

2020/07/05 02:36 編集

それくらいの応用は利くものと思っていました。 puts "お一人様あたり、#{(一人あたりの計算式).floor(-2)}縁になります。" ですね。
saki_program

2020/07/07 10:55

#{(selected_menu.get_total_price(count)/count).floor(-2)}で解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問