2024.06.19
値上げ率の計算
はじめに
2024年6月現在、値上げラッシュが続いています。石油などの燃料、電気/ガス/水道などの公共料金、食品、各種サービスなど幅広い分野で値上げの動きが広まっています。
値上げ率とは?
値上げ率は、値上げ後の値段が、元の値段(値上げ前の値段)からどれだけ上がったかを表す割合です。この割合は、%(パーセント、パーセンテージ)で表すことが一般的です。
値上げ率を理解するために、最初に値上げ額について説明します。
値上げ額は、上がった値段なので、
値上げ額 = 値上げ後の値段 - 値上げ前の値段
で計算することができます。
例えば、値上げ後の値段が\11,000で、値上げ前の値段が\10,000の場合、値上げ額は以下のように計算することができます。、
値上げ額 = 値上げ後の値段 - 値上げ前の値段 = \11,000 - \10,000 = \1,000
値上げ額は、\1,000です。
次に値上げ率について説明します。
値上げ率は、値上げ前の値段からどれだけ上がったかを表す比率です。
この比率を計算式で表すと、
値上げ率 = 値上げ額 ÷ 値上げ前の値段
となります。
また、値上げ額を、値上げ後の値段と値上げ前の値段で表すと、
値上げ率 = ( 値上げ後の値段 - 値上げ前の値段 ) ÷ 値上げ前の値段
となります。
値上げ率を%(パーセント、パーセンテージ)で表す場合は以下の式で計算します。
値上げ率(%) = ( 値上げ後の値段 - 値上げ前の値段 ) ÷ 値上げ前の値段 × 100
最後に100を掛けで%にします。
これで、何%値上ったかを計算することができます。
Javaソースコード
Neageritsu1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039
import java.util.Scanner; public class Neageritsu1 { // 値上げ額の計算 // 値上げ後の値段 money_ato から 値上げ前の値段 money_mae を引く private static int Neagegaku( int money_ato, int money_mae ) { return money_ato - money_mae; } // 値上げ率の計算 private static double Neageritsu( int money_ato, int money_mae ) { // 値上げ額を値上げ前の値段で割って計算 // 整数の値を(double)で型キャストして計算 return (double)Neagegaku( money_ato, money_mae ) / (double)money_mae; } // メイン public static void main( String args[] ) { // キーボードから入力 Scanner scan = new Scanner( System.in ); // 入力した値をmoney_maeとmoney_atoに代入 System.out.print( "値上げ前の値段をキーボードから入力してください:"); int money_mae = scan.nextInt(); System.out.print( "値上げ後の値段をキーボードから入力してください:"); int money_ato = scan.nextInt(); System.out.println( "値上げ前の値段 :" + money_mae ); System.out.println( "値上げ後の値段 :" + money_ato ); System.out.println( "値上げ率 :" + Neageritsu( money_ato, money_mae ) ); System.out.println( "値上げ率(%) :" + Neageritsu( money_ato, money_mae ) * 100.0 ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Neageritsu1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Neageritsu1.java
実行
C:\talavax\javasample>java Neageritsu1
実行例(値上げ前の値段\10,000、値上げ後の値段\11,000で値上げ率を計算)
値上げ前の値段をキーボードから入力してください:10000 値上げ後の値段をキーボードから入力してください:11000 値上げ前の値段 :10000 値上げ後の値段 :11000 値上げ率 :0.1 値上げ率(%) :10.0
値上げ前の値段に10000、値上げ後の値段に11000を入力して、値上げ率0.1と値上げ率(%)10.0が計算できています。
Javaソースコードの解説
ここから、ソースコードを解説していきます。
001
import java.util.Scanner;
003
public class Neageritsu1
クラス名を、Neageritsu1としています。
005 006 007 008 009 010
// 値上げ額の計算 // 値上げ後の値段 money_ato から 値上げ前の値段 money_mae を引く private static int Neagegaku( int money_ato, int money_mae ) { return money_ato - money_mae; }
これは、値上げ額を計算するメソッドNeagegakuです。
値上げ後の金額money_atoと値上げ前の金額money_maeを渡して、値上げ額を計算しています。
money_atoからmoney_maeの金額を引いて計算した値上げ額をreturn文で戻しています。値上げ後の金額money_atoが、値上げ後の金額money_maeよりも小さい場合、マイナスの値を戻します。
013 014 015 016 017 018 019
// 値上げ率の計算 private static double Neageritsu( int money_ato, int money_mae ) { // 値上げ額を値上げ前の値段で割って計算 // 整数の値を(double)で型キャストして計算 return (double)Neagegaku( money_ato, money_mae ) / (double)money_mae; }
値上げ率はdouble型の値を戻すメソッドなので、値上げ額であるNeagegaku( money_ato, money_mae )と値上げ前の金額money_maeの前に(double)を付けて、double型に変換して計算しています。
022 023 024
// メイン public static void main( String args[] ) {
このmainメソッドからプログラムを実行します。
025 026
// キーボードから入力
Scanner scan = new Scanner( System.in );
標準入力System.inを使って、Scannerクラスのscanを初期化しています。
028 029 030
// 入力した値をmoney_maeとmoney_atoに代入 System.out.print( "値上げ前の値段をキーボードから入力してください:"); int money_mae = scan.nextInt();
nextIntメソッドで、キーボードから入力された1行を読み取り、その値を値上げ前の値段を格納するint型の変数money_maeに代入しています。
ここで、入力待ち状態になり、Enterキーが押されるまでに入力した値が変数money_maeに格納されます。
キーボードの"Ctrl"キーを押しながら"C"を押すと強制終了します。
031 032
System.out.print( "値上げ後の値段をキーボードから入力してください:"); int money_ato = scan.nextInt();
nextIntメソッドで、キーボードから入力された1行を読み取り、その値を値上げ後の値段を格納するint型の変数money_atoに代入しています。
ここで、入力待ち状態になり、Enterキーが押されるまでに入力した値が変数money_atoに格納されます。
キーボードの"Ctrl"キーを押しながら"C"を押すと強制終了します。
034 035 036 037
System.out.println( "値上げ前の値段 :" + money_mae ); System.out.println( "値上げ後の値段 :" + money_ato ); System.out.println( "値上げ率 :" + Neageritsu( money_ato, money_mae ) ); System.out.println( "値上げ率(%) :" + Neageritsu( money_ato, money_mae ) * 100.0 );
結果をコンソール出力しています。
Javaソースコード - 金額の変数にlong型を使用
Neageritsu2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039
import java.util.Scanner; public class Neageritsu2 { // 値上げ額の計算 // 値上げ後の値段 money_ato から 値上げ前の値段 money_mae を引く private static long Neagegaku( long money_ato, long money_mae ) { return money_ato - money_mae; } // 値上げ率の計算 private static double Neageritsu( long money_ato, long money_mae ) { // 値上げ額を値上げ前の値段で割って計算 // 整数の値を(double)で型キャストして計算 return (double)Neagegaku( money_ato, money_mae ) / (double)money_mae; } // メイン public static void main( String args[] ) { // キーボードから入力 Scanner scan = new Scanner( System.in ); // 入力した値をmoney_maeとmoney_atoに代入 System.out.print( "値上げ前の値段をキーボードから入力してください:"); long money_mae = scan.nextLong(); System.out.print( "値上げ後の値段をキーボードから入力してください:"); long money_ato = scan.nextLong(); System.out.println( "値上げ前の値段 :" + money_mae ); System.out.println( "値上げ後の値段 :" + money_ato ); System.out.println( "値上げ率 :" + Neageritsu( money_ato, money_mae ) ); System.out.println( "値上げ率(%) :" + Neageritsu( money_ato, money_mae ) * 100.0 ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis Neageritsu2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac Neageritsu2.java
実行
C:\talavax\javasample>java Neageritsu2
以上です。