Salesforce automatically creates Child Relationships (effectively "reverse relationships") when you create a lookup field. Where you have a relationship between A__c and B__c having a lookup field on A__c you get the child relationship defined too. The specific name of this relationship is set when you define the lookup field.
So, with A__c having field "Some_B__c" as a lookup to "B__c" you can query the B object and get its related A's like:
SELECT Id, ..., (SELECT Id, Currency_Field__c FROM A__r) FROM B__c WHERE Id = :someId
This will load your B__c instance such that you have an ARRAY of A__c instances (all A__c instances that reference the given B__c instance) that you can access and get the currency field from using something like:
for (B__c b : [SELECT ... ]) { // Using the select from above you will get one match
for (A__c a : b.A__r) {
Currency c = a.Currency_Field__c;
... // Do something with the related A__c's currency
}
}
Opportunity
is a child object ofAccount
because the Opportunity object has the relationship fieldAccountId
.