diff --git a/app/imports/ui/creature/character/characterSheetTabs/InventoryTab.vue b/app/imports/ui/creature/character/characterSheetTabs/InventoryTab.vue
index 1b79ed03..4fb921e4 100644
--- a/app/imports/ui/creature/character/characterSheetTabs/InventoryTab.vue
+++ b/app/imports/ui/creature/character/characterSheetTabs/InventoryTab.vue
@@ -15,7 +15,7 @@
- {{ creature.denormalizedStats.weightCarried || 0 }} lb
+ {{ weightCarried }} lb
@@ -107,6 +107,7 @@ import ItemList from '/imports/ui/properties/components/inventory/ItemList.vue';
import getParentRefByTag from '/imports/api/creature/creatureProperties/methods/getParentRefByTag.js';
import BUILT_IN_TAGS from '/imports/constants/BUILT_IN_TAGS.js';
import CoinValue from '/imports/ui/components/CoinValue.vue';
+import stripFloatingPointOddities from '/imports/ui/utility/stripFloatingPointOddities.js';
export default {
components: {
@@ -207,6 +208,11 @@ export default {
containerIds(){
return this.containers.map(container => container._id);
},
+ weightCarried(){
+ return stripFloatingPointOddities(
+ this.creature.denormalizedStats.weightCarried || 0
+ );
+ },
},
methods: {
clickProperty(_id){
diff --git a/app/imports/ui/properties/components/inventory/ContainerCard.vue b/app/imports/ui/properties/components/inventory/ContainerCard.vue
index 7838a746..22492234 100644
--- a/app/imports/ui/properties/components/inventory/ContainerCard.vue
+++ b/app/imports/ui/properties/components/inventory/ContainerCard.vue
@@ -17,7 +17,7 @@
>
$vuetify.icons.weight
- {{ (model.contentsWeightless ? 0 : model.contentsWeight || 0) + (model.weight || 0) }}
+ {{ weight }}
@@ -49,6 +49,7 @@ import ToolbarCard from '/imports/ui/components/ToolbarCard.vue';
import ItemList from '/imports/ui/properties/components/inventory/ItemList.vue';
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties.js';
import CoinValue from '/imports/ui/components/CoinValue.vue';
+import stripFloatingPointOddities from '/imports/ui/utility/stripFloatingPointOddities.js';
export default {
components: {
@@ -62,6 +63,20 @@ export default {
required: true,
},
},
+ computed: {
+ weight(){
+ const contentWeight = this.model.contentsWeightless ?
+ 0 :
+ this.model.contentsWeight || 0;
+ const ownWeight = this.model.weight || 0;
+ return stripFloatingPointOddities(contentWeight + ownWeight);
+ },
+ value(){
+ const contentValue = this.model.contentsValue || 0;
+ const ownValue = this.model.value || 0;
+ return contentValue + ownValue;
+ }
+ },
methods: {
clickContainer(_id){
this.$store.commit('pushDialogStack', {
diff --git a/app/imports/ui/properties/viewers/ItemViewer.vue b/app/imports/ui/properties/viewers/ItemViewer.vue
index b6adc5ee..32beb2bf 100644
--- a/app/imports/ui/properties/viewers/ItemViewer.vue
+++ b/app/imports/ui/properties/viewers/ItemViewer.vue
@@ -134,6 +134,7 @@ import propertyViewerMixin from '/imports/ui/properties/viewers/shared/propertyV
import CoinValue from '/imports/ui/components/CoinValue.vue';
import IncrementButton from '/imports/ui/components/IncrementButton.vue';
import adjustQuantity from '/imports/api/creature/creatureProperties/methods/adjustQuantity.js';
+import stripFloatingPointOddities from '/imports/ui/utility/stripFloatingPointOddities.js';
export default {
components:{
@@ -146,10 +147,10 @@ export default {
},
computed:{
totalValue(){
- return this.model.value * this.model.quantity;
+ return stripFloatingPointOddities(this.model.value * this.model.quantity);
},
totalWeight(){
- return this.model.weight * this.model.quantity;
+ return stripFloatingPointOddities(this.model.weight * this.model.quantity);
},
},
methods: {
diff --git a/app/imports/ui/utility/stripFloatingPointOddities.js b/app/imports/ui/utility/stripFloatingPointOddities.js
new file mode 100644
index 00000000..8e55685c
--- /dev/null
+++ b/app/imports/ui/utility/stripFloatingPointOddities.js
@@ -0,0 +1,3 @@
+export default function stripFloatingPointOddities(num, precision = 12){
+ return +parseFloat(num.toPrecision(precision))
+}