bug fix: zero division error

This commit is contained in:
wjsjwr 2025-02-22 17:25:21 +08:00
parent 16b3b63169
commit 2b3b516f18
4 changed files with 28 additions and 12 deletions

View File

@ -10,12 +10,10 @@
<cargoProject FILE="$PROJECT_DIR$/bookkeeper/Cargo.toml" /> <cargoProject FILE="$PROJECT_DIR$/bookkeeper/Cargo.toml" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="76b3b902-7a5c-4bcd-9c1b-8241d748fb44" name="更改" comment="添加总计"> <list default="true" id="76b3b902-7a5c-4bcd-9c1b-8241d748fb44" name="更改" comment="添加登录页面">
<change afterPath="$PROJECT_DIR$/bookkeeper/templates/login.html.j2" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bookkeeper/Cargo.lock" beforeDir="false" afterPath="$PROJECT_DIR$/bookkeeper/Cargo.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bookkeeper/Cargo.lock" beforeDir="false" afterPath="$PROJECT_DIR$/bookkeeper/Cargo.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bookkeeper/Cargo.toml" beforeDir="false" afterPath="$PROJECT_DIR$/bookkeeper/Cargo.toml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bookkeeper/Cargo.toml" beforeDir="false" afterPath="$PROJECT_DIR$/bookkeeper/Cargo.toml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bookkeeper/Rocket.toml" beforeDir="false" afterPath="$PROJECT_DIR$/bookkeeper/Rocket.toml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bookkeeper/src/main.rs" beforeDir="false" afterPath="$PROJECT_DIR$/bookkeeper/src/main.rs" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bookkeeper/src/main.rs" beforeDir="false" afterPath="$PROJECT_DIR$/bookkeeper/src/main.rs" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@ -23,7 +21,7 @@
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="ExecutionTargetManager" SELECTED_TARGET="RsBuildProfile:dev" /> <component name="ExecutionTargetManager" SELECTED_TARGET="RsBuildProfile:release" />
<component name="FileTemplateManagerImpl"> <component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES"> <option name="RECENT_TEMPLATES">
<list> <list>
@ -84,7 +82,7 @@
</component> </component>
<component name="RunManager" selected="Cargo.Run bookkeeper"> <component name="RunManager" selected="Cargo.Run bookkeeper">
<configuration name="Run bookkeeper" type="CargoCommandRunConfiguration" factoryName="Cargo Command"> <configuration name="Run bookkeeper" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
<option name="buildProfileId" value="dev" /> <option name="buildProfileId" value="release" />
<option name="command" value="run --package bookkeeper --bin bookkeeper" /> <option name="command" value="run --package bookkeeper --bin bookkeeper" />
<option name="workingDirectory" value="file://$PROJECT_DIR$/bookkeeper" /> <option name="workingDirectory" value="file://$PROJECT_DIR$/bookkeeper" />
<envs /> <envs />
@ -158,7 +156,7 @@
<workItem from="1736239592084" duration="2278000" /> <workItem from="1736239592084" duration="2278000" />
<workItem from="1737809478583" duration="76000" /> <workItem from="1737809478583" duration="76000" />
<workItem from="1739197188908" duration="1873000" /> <workItem from="1739197188908" duration="1873000" />
<workItem from="1740209396270" duration="4798000" /> <workItem from="1740209396270" duration="6029000" />
</task> </task>
<task id="LOCAL-00001" summary="Add bookkeeper"> <task id="LOCAL-00001" summary="Add bookkeeper">
<option name="closed" value="true" /> <option name="closed" value="true" />
@ -272,7 +270,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1739198426101</updated> <updated>1739198426101</updated>
</task> </task>
<option name="localTasksCounter" value="15" /> <task id="LOCAL-00015" summary="添加登录页面">
<option name="closed" value="true" />
<created>1740214793630</created>
<option name="number" value="00015" />
<option name="presentableId" value="LOCAL-00015" />
<option name="project" value="LOCAL" />
<updated>1740214793630</updated>
</task>
<option name="localTasksCounter" value="16" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@ -304,7 +310,8 @@
<MESSAGE value="更新版本号和部署脚本" /> <MESSAGE value="更新版本号和部署脚本" />
<MESSAGE value="清仓筛选" /> <MESSAGE value="清仓筛选" />
<MESSAGE value="添加总计" /> <MESSAGE value="添加总计" />
<option name="LAST_COMMIT_MESSAGE" value="添加总计" /> <MESSAGE value="添加登录页面" />
<option name="LAST_COMMIT_MESSAGE" value="添加登录页面" />
</component> </component>
<component name="XSLT-Support.FileAssociations.UIState"> <component name="XSLT-Support.FileAssociations.UIState">
<expand /> <expand />

2
bookkeeper/Cargo.lock generated
View File

@ -481,7 +481,7 @@ dependencies = [
[[package]] [[package]]
name = "bookkeeper" name = "bookkeeper"
version = "0.2.0" version = "0.2.1"
dependencies = [ dependencies = [
"bcrypt", "bcrypt",
"chrono", "chrono",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "bookkeeper" name = "bookkeeper"
version = "0.2.0" version = "0.2.1"
edition = "2021" edition = "2021"
[dependencies] [dependencies]

View File

@ -1,3 +1,4 @@
use rust_decimal::prelude::Zero;
#[macro_use] #[macro_use]
extern crate rocket; extern crate rocket;
@ -235,8 +236,16 @@ async fn index(
} }
} }
let pct = gain / bought; let pct = if bought.is_zero() {
let net_pct = net_gain / net_bought; Decimal::zero()
} else {
gain / bought
};
let net_pct = if net_bought.is_zero() {
Decimal::zero()
} else {
net_gain / net_bought
};
Ok(Template::render( Ok(Template::render(
"index", "index",