Whisper Money多币种管理指南:账户币种、主显示币种与汇率转换的正确打开方式
【免费下载链接】whisper-moneyUnderstand your personal finances. Forget Excels, try Whisper Money.项目地址https://gitcode.com/gh_mirrors/wh/whisper-money点击查看免费下载Whisper Money 是一款开源的个人财务管理工具帮你告别 Excel 表格记账。它的多币种管理功能是核心卖点之一每个账户美元银行卡、欧元信用卡、比特币钱包各自保留自己的账户币种而仪表盘和各项分析则统一换算成你选定的主显示币种。这篇指南带你看懂 Whisper Money 多币种管理的正确打开方式账户币种、主显示币种、汇率转换三层机制让多币种数据始终一笔不错。一、先分清两个“币种”账户币种 vs 主显示币种 Whisper Money 的多币种模型只有两层分清它们能避免 90% 的困惑概念存哪里作用账户币种每个账户和交易上的currency_code该账户真实记账的“原币”主显示币种primary用户资料上的currency_code仪表盘、现金流、所有分析的汇总展示币种两者完全独立一位以 CNY 为主显示币种的用户可以同时持有 USD 银行账户和 BTC 钱包打开仪表盘看到的是统一的 CNY 总额。账户与交易各自携带币种app/Models/Account.php、app/Models/Transaction.php主显示币种跟着用户走app/Models/User.php设置主显示币种在设置 → 账户资料页面有 Currency 下拉框可选项由后端的primaryOptions()提供。系统还会根据你的 format locale如zh-CN、en-US的地域部分推荐一个默认币种推荐逻辑见 app/Services/CurrencyOptions.php。为每个账户选择币种新建账户时同样有一个币种下拉框可选项来自accountOptions()。注意部分币种只能当账户币种、不能当主显示币种——典型如 BTC它能持有、能展示但不适合作为全局汇总口径。能力区分由配置中的allows_primary/allows_account两个独立开关控制见 config/currencies.php。主显示币种生效的地方凡是“跨账户汇总”的视图都会先按当日汇率把各账户折算成主显示币种例如月度总结报告二、汇率转换是如何工作的按交易日期取价而不是今天核心原则历史余额用历史汇率这是最容易误解的一点。Whisper Money 转换一笔交易时取的是交易发生当天的汇率而不是“最新汇率”。这样你的历史余额曲线不会因为汇率波动而失真。转换入口app/Services/ExchangeRateService.php汇率来源与抓取app/Services/CurrencyConversionService.php数据来源、回退与缓存策略主数据源fawazahmed0/currency-api的每日汇率文件另备一个备用源自动切换历史回退某天没有汇率时最多向前回溯 7 天取最近的可用日分级缓存最新汇率缓存 6 小时历史汇率不可变缓存 30 天源不可用时只缓存 10 分钟以便快速恢复见 app/Services/CurrencyConversionService.php落库复用拉到的汇率会写入exchange_rates表供后续请求复用建表迁移见 database/migrations/2026_02_20_074846_create_exchange_rates_table.php。找不到汇率时怎么办系统会优雅降级而不是报错convert()返回未换算的金额并记录 warning保证总额仍然对得上需要严格区分的场景则用convertOrNull()返回 null见 app/Services/ExchangeRateService.php。三、不同币种精度不同一个容易踩的坑各币种的最小记账单位小数位并不相同EUR 是 2 位分、JPY 是 0 位、COP 是 0 位、BTC 是 8 位satoshi。Whisper Money 的所有金额统一以整数最小单位存储小数位由配置显式声明未知币种回退为 2 位。为什么这么讲究如果把汇率直接乘在存储的整数上两种精度不同的币种之间会差出一个 10 的幂次。正确做法是先还原成主单位 → 应用汇率 → 再缩放回目标币种的最小单位。这段注释值得读一读config/currencies.php。四、支持哪些币种如何新增一个币种币种总表config/currencies.php覆盖主流法币USD、EUR、GBP、JPY、CNY、CHF、CAD 等以及加密资产新增币种是一次配置变更不是一个功能加一个配置项 一行翻译即可校验、下拉框选项、汇率转换全部自动生效。官方开发者指南见 docs/adding-a-currency.md两个注意点指南里特别强调必须使用现行 ISO 4217 代码。加纳的例子旧代码GHC仍存在但汇率被重定价放大 10000 倍正确代码是GHS否则所有余额会膨胀 10000 倍确认汇率数据源确实覆盖该代码且汇率合理否则该币种仍可选择只是不会发生换算。五、文件导入与多币种导入时按账户原币记账通过全量导入功能搬入历史数据时币种机制同样生效映射账户先确认文件中每一列属于哪个账户每个账户保持自己的币种预览交易预览页显示的金额是账户的原币金额并标出 New / Duplicate 状态导入完成后仪表盘、现金流等视图自动按各交易日汇率折算为主显示币种无需任何手动操作。六、多币种管理最佳实践清单✅ 主显示币种选你日常开支用的那个CNY / USD / EUR✅ 每个账户的币种就设成银行流水实际记账的币种不要为了“好看”去人为统一✅ 查看历史余额时别期望“按今天的汇率”Whisper Money 按交易日取价这恰恰更准确✅ BTC 等加密资产可以当账户币种但不能当主显示币种✅ 需要的币种不在列表里先读 docs/adding-a-currency.md这是一个 5 分钟就能完成的配置变更。七、相关文件速查币种配置与精度定义config/currencies.php汇率拉取与缓存app/Services/CurrencyConversionService.php换算服务含精度缩放app/Services/ExchangeRateService.php、app/Support/Money.php币种选项与下拉框数据源app/Services/CurrencyOptions.php新增币种官方指南docs/adding-a-currency.md赞分享【免费下载链接】whisper-moneyUnderstand your personal finances. Forget Excels, try Whisper Money.项目地址https://gitcode.com/gh_mirrors/wh/whisper-money点击查看免费下载相关推荐OpenCart 货币管理实战指南汇率、显示格式与多币种商店配置OpenCart 货币管理实战指南汇率、显示格式与多币种商店配置 导读 本文以 OpenCart 管理后台的 System → Localization →电商后端终极Money Ruby库汇率转换完全指南轻松构建多币种金融应用终极Money Ruby库汇率转换完全指南轻松构建多币种金融应用 Money Ruby库是一款功能强大的Ruby货币处理工具专为处理货币计算和汇率转换而设计uni-app货币格式化终极指南多币种显示与精确计算uni app货币格式化终极指南多币种显示与精确计算 在全球化应用开发中 uni app货币格式化 是每个开发者都必须掌握的核心技能。作为使用Vue.js的示例工程前端移动开发跨平台创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

用Python仿真登月软着陆:PID控制与重力转弯制导实践

用Python仿真登月软着陆:PID控制与重力转弯制导实践

“Apollo-11”这个代号,听起来像天文馆的展览主题,其实是我最近折腾了一个多月的一个仿真项目:用Python从零搭建一套登月软着陆控制系统。它解决的问题很具体——一艘着陆器在几乎没有大气的环境下,怎么靠着有限的燃料、有限的推力…

2026/10/15 16:42:51 阅读更多 →
Dr. Claw系统架构解析:React、Express、WebSocket三层协同与多Agent流式调度原理

Dr. Claw系统架构解析:React、Express、WebSocket三层协同与多Agent流式调度原理

【免费下载链接】dr-claw A Super AI Lab with massive AI Doctors as Assistants. Best IDE for Research via AI Power. 项目地址: https://gitcode.com/gh_mirrors/dr/dr-claw 点击查看 免费下载 Dr. Claw 是一款开源的全栈 AI 科研工作台,支持 Cla…

2026/10/15 16:41:51 阅读更多 →
Grafana Mimir 术语表深度解析:Blocks storage、Hash ring、WAL 等核心概念全解

Grafana Mimir 术语表深度解析:Blocks storage、Hash ring、WAL 等核心概念全解

时序数据库后端数据存储可观测性云原生 【免费下载链接】mimir Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus. 项目地址: https://gitcode.com/gh_mirrors/mimir/mimir 点击查看 免费下载 Gr…

2026/10/15 16:41:51 阅读更多 →

最新新闻

Seldon Core 2 实战:用 Pipeline 把 CIFAR10 图像分类器与异常检测、漂移监控打包为生产级推理服务

Seldon Core 2 实战:用 Pipeline 把 CIFAR10 图像分类器与异常检测、漂移监控打包为生产级推理服务

人工智能大模型MLOpsLLMOps模型推理服务云原生后端 【免费下载链接】seldon-core An MLOps framework to package, deploy, monitor and manage thousands of production machine learning models 项目地址: https://gitcode.com/gh_mirrors/se/seldon-core 点击查看…

2026/10/15 17:32:52 阅读更多 →
树形DP实战:将功补过类问题的状态设计与转移方程

树形DP实战:将功补过类问题的状态设计与转移方程

1. 从标题拆解这道题到底在考什么 “将功补过”配上“树形DP”,这个组合一出来,有经验的选手基本就能嗅到味道了。这不是一道单纯的树上背包,也不是简单的最大独立集,它把“功”和“过”这两个对立的概念同时挂在树结构上&#xf…

2026/10/15 17:32:52 阅读更多 →
海波龙(Oracle 产品)实施商怎么选?7个评估维度+服务商能力对比

海波龙(Oracle 产品)实施商怎么选?7个评估维度+服务商能力对比

海波龙(Oracle 产品)实施商怎么选?7个评估维度服务商能力对比海波龙(Oracle 产品)选型时,企业往往把注意力放在产品模块和功能演示上,等到项目进入第二年,真正决定体验的却是当初挑的…

2026/10/15 17:32:52 阅读更多 →
STM32F103C8T6驱动SG90舵机:PWM源码与调试避坑指南

STM32F103C8T6驱动SG90舵机:PWM源码与调试避坑指南

简介:这份源码面向嵌入式初学者与需要快速验证舵机控制的开发者,围绕STM32F103C8T6如何驱动SG90舵机展开,解决从PWM信号生成到角度精确控制的实际问题。资源包共4个文件,包含2个C源文件、1个头文件与1张舵机接口示意图&#xff0c…

2026/10/15 17:32:52 阅读更多 →
ZLG Python二次开发实战:CAN总线数据采集与避坑指南

ZLG Python二次开发实战:CAN总线数据采集与避坑指南

简介:这份资源是面向嵌入式与物联网开发者的ZLG DTU系列Python二次开发示例包,重点围绕DTU 200UWGR及CAN-DTU系列无线数据传输单元,帮助解决官方demo在特定环境下无法直接运行、功能不足等问题。包内共124个文件,以98个xml配置与接…

2026/10/15 17:32:52 阅读更多 →
herdr-gpui Teleport 深度解析:带着未提交改动、运行中进程和 Agent 会话跨主机迁移工作树

herdr-gpui Teleport 深度解析:带着未提交改动、运行中进程和 Agent 会话跨主机迁移工作树

【免费下载链接】herdr-gpui Native client for Herdr on macOS, Linux, and Windows, built with Rust and GPUI. View terminal sessions, workspaces, Git worktrees, and agent activity through your local Herdr daemon. 项目地址: https://gitcode.com/gh_mi…

2026/10/15 17:31:51 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →