問題
通貨項目は、Apexのどのプリミティブデータ型に自動的に割り当てられますか。
- Integer
- Decimal
- Double
- Currency
正解
- Integer
- Decimal
- Double
- Currency
解説
この問題を解くための主な手掛かりと解き方を以下にまとめます:
- 通貨項目の特性:
通貨項目は小数点以下の値も持つことができます。この特性は、選択されるデータ型が小数点をサポートしているかどうかを考慮する上で重要です。 - Apexのプリミティブデータ型:
- Integer: 整数値のみを表します。小数点以下の値をサポートしていません。
- Decimal: 固定小数点数を表します。通貨計算などの正確な計算に適しています。
- Double: 浮動小数点数を表しますが、正確な計算には適していません。
- Currency: Apexにはこのプリミティブデータ型は存在しません。
- 解き方:
- 最初に、通貨項目の特性を考慮し、小数点をサポートするデータ型を見つけます。この場合、DecimalとDoubleが該当します。
- 次に、通貨計算の正確さを考慮します。Double型は浮動小数点数のため正確な計算には不向きで、Decimal型が固定小数点数を表すため適しています。
- 上記の手掛かりに基づき、通貨項目がApexで操作する際に「Decimal」型に自動的に割り当てられることを導き出せます。
それぞれの選択肢の理由について説明します。
□ Integer
これは不正解です。Integer
型は整数を表すために使用されますが、通貨項目には小数点以下の値が含まれることが一般的です。そのため、通貨項目を格納するためには、小数点以下の値をサポートするデータ型が必要です。
□ Decimal
これは正解です。Salesforce Apexでは、通貨項目はDecimal
型に自動的に割り当てられます。Decimal
型は固定小数点または浮動小数点の数値を表すことができ、通貨のような精度が必要な値に適しています。
□ Double
これは不正解です。Double
型も浮動小数点数を表すことができますが、Salesforce Apexにおいて通貨項目はDecimal
型に割り当てられます。Double
型はより大きな範囲の数値を扱うことができますが、通貨値にはDecimal
の精度が適しています。
□ Currency
これは不正解です。ApexにはCurrencyというプリミティブデータ型は存在しません。
ApexにおけるDouble型とDecimal型の違い
- 数値の表現:
- Double: ApexのDouble型は64ビットの浮動小数点数をサポートします。これにより、非常に大きな値や非常に小さな値を近似的に表現することができます。
- Decimal: ApexのDecimal型は任意の精度を持つ数値を表現するためのものです。通常、財務や通貨に関する計算に使用されます。
- 使用ケース:
- Double: 一般的な数学的な計算や大きな数値の範囲が必要な場合に使用されます。しかし、金額や通貨計算には推奨されません。
- Decimal: 金額、通貨、会計、金融計算など、正確さが求められる場面で使用されます。Decimalは正確な算術計算を保証します。
- 正確さ:
- Double: Double型は浮動小数点のため、非常に大きな数値や非常に小さな数値の計算において誤差が生じる可能性があります。
- Decimal: Decimal型は正確な計算を提供し、浮動小数点に関する誤差が生じることがありません。
Apexにおいて、通貨項目や正確な計算が求められる場合、Decimal型が推奨されます。Double型は、正確さよりも数値の範囲を優先する場合に使用されます。
次の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第28問
問題 dowork() メソッドを呼び出す際に使用できるコードセグメントはどれですか。 For(Trigger.isInsert t: Trigger.new) { dowork(); } If(Trigger.isInsert) dowork()…
前の問題へ
【Salesforce 認定Platformデベロッパー】試験対策:第26問
問題 Universal Containers社は、顧客やサービスエージェントが注文を識別するために注文番号を使用する注文システムを使用しています。注文レコードはSalesforceにイン…
1問目から復習する
【Salesforce 認定Platformデベロッパー】試験対策:第1問
問題 デバッグログに書き込まれるときのxの値は何ですか。 Integer x = 0; do { x = 1; x++; } while (x < 1); System.debug(x); 0 1 2 3 正解 0 1 2 3 解説 デバッ…
コメント